diff options
Diffstat (limited to 'lib/ostruct.rb')
-rw-r--r-- | lib/ostruct.rb | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/ostruct.rb b/lib/ostruct.rb index 6af5bbdac0..f3ed01524b 100644 --- a/lib/ostruct.rb +++ b/lib/ostruct.rb @@ -70,9 +70,10 @@ class OpenStruct def new_ostruct_member(name) name = name.to_sym unless self.respond_to?(name) - meta = class << self; self; end - meta.send(:define_method, name) { @table[name] } - meta.send(:define_method, :"#{name}=") { |x| @table[name] = x } + class << self; self; end.class_eval do + define_method(name) { @table[name] } + define_method(:"#{name}=") { |x| @table[name] = x } + end end end |