This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
require 'ostruct'
|
||||
|
||||
class OpenStruct
|
||||
|
||||
# Access a value in the OpenStruct by key, like a Hash.
|
||||
# This increases OpenStruct's "duckiness".
|
||||
#
|
||||
# o = OpenStruct.new
|
||||
# o.t = 4
|
||||
# o['t'] #=> 4
|
||||
#
|
||||
def [](key)
|
||||
key = key.to_sym unless key.is_a?(Symbol)
|
||||
@table[key]
|
||||
end
|
||||
|
||||
# Set a value in the OpenStruct by key, like a Hash.
|
||||
#
|
||||
# o = OpenStruct.new
|
||||
# o['t'] = 4
|
||||
# o.t #=> 4
|
||||
#
|
||||
def []=(key,val)
|
||||
raise TypeError, "can't modify frozen #{self.class}", caller(1) if self.frozen?
|
||||
key = key.to_sym unless key.is_a?(Symbol)
|
||||
@table[key]=val
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user