class RecursiveStruct
Constants
- VERSION
Public Class Methods
new(hash = nil)
click to toggle source
# File lib/recursive_struct.rb, line 6 def initialize(hash = nil) hash.each { |key, value| set_data(key, value) } if hash end
Public Instance Methods
method_missing(name, *args, &block)
click to toggle source
Calls superclass method
# File lib/recursive_struct.rb, line 10 def method_missing(name, *args, &block) key = name.to_s if key.include?('=') add_setter(key.chomp('='), *args) elsif data.respond_to?(key) send_data(key, *args, &block) elsif args.length == 0 get_data(key) else super(name, *args, &block) end end
Private Instance Methods
add_setter(key, *args)
click to toggle source
# File lib/recursive_struct.rb, line 26 def add_setter(key, *args) if key == '[]' && args.length == 2 set_data(args.first, args.last) elsif args.length == 1 set_data(key, args.first) end end