mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* 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
This commit is contained in:
parent
1dbe0f0672
commit
db66739c7c
2 changed files with 16 additions and 17 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue