summaryrefslogtreecommitdiff
path: root/lib/ostruct.rb
diff options
context:
space:
mode:
authormarcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-16 03:16:25 +0000
committermarcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-16 03:16:25 +0000
commitdb66739c7ce253a9051df316518948361787b50b (patch)
treeb06ad7691b0f001d28d3a3f65047cfc076555a27 /lib/ostruct.rb
parent1dbe0f0672cfc16c875d0a47bde266ddbaa8ba98 (diff)
* lib/ostruct.rb: Add OpenStruct#to_h [Feature #6276]
[ref #1400] [rubyspec:9e0250b2fc6f] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/ostruct.rb')
-rw-r--r--lib/ostruct.rb29
1 files changed, 12 insertions, 17 deletions
diff --git a/lib/ostruct.rb b/lib/ostruct.rb
index 21bda73..da0cf0b 100644
--- a/lib/ostruct.rb
+++ b/lib/ostruct.rb
@@ -101,32 +101,27 @@ class OpenStruct
end
#
- # Provides marshalling support for use by the Marshal library. Returning the
- # underlying Hash table that contains the functions defined as the keys and
- # the values assigned to them.
+ # Converts the OpenStruct to a hash with keys representing
+ # each attribute (as symbols) and their corresponding values
+ # Example:
#
- # require 'ostruct'
+ # require 'ostruct'
+ # data = OpenStruct.new("country" => "Australia", :population => 20_000_000)
+ # data.to_h # => {:country => "Australia", :population => 20000000 }
#
- # person = OpenStruct.new
- # person.name = 'John Smith'
- # person.age = 70
+ def to_h
+ @table.dup
+ end
+
#
- # person.marshal_dump # => { :name => 'John Smith', :age => 70 }
+ # Provides marshalling support for use by the Marshal library.
#
def marshal_dump
@table
end
#
- # Provides marshalling support for use by the Marshal library. Accepting
- # a Hash of keys and values which will be used to populate the internal table
- #
- # require 'ostruct'
- #
- # event = OpenStruct.new
- # hash = { 'time' => Time.now, 'title' => 'Birthday Party' }
- # event.marshal_load(hash)
- # event.title # => 'Birthday Party'
+ # Provides marshalling support for use by the Marshal library.
#
def marshal_load(x)
@table = x