class SimpleStruct

Public Class Methods

create(obj) click to toggle source
# File lib/simple_struct.rb, line 35
def create obj
  obj.is_a?(Hash) ? SimpleStruct.new(obj) : obj
end
new(hash) click to toggle source
# File lib/simple_struct.rb, line 5
def initialize hash
  @origin_hash = hash
  @a = hash.inject({}){ |res, (key, value)| res[key] = SimpleStruct.create(value); res }
end

Public Instance Methods

[](key) click to toggle source
# File lib/simple_struct.rb, line 10
def [](key)
  @a[real_key(key)]
end
[]=(key, value) click to toggle source
# File lib/simple_struct.rb, line 14
def []=(key, value)
  @a[real_key(key)] = value
end
method_missing(method_name, *args) click to toggle source
Calls superclass method
# File lib/simple_struct.rb, line 22
def method_missing method_name, *args
  return self[method_name.to_s.delete("=")] = args.first if method_name[-1] == "=" 
  return self[method_name] if @a.has_key?(real_key(method_name))

  super method_name, *args
end
to_hash() click to toggle source
# File lib/simple_struct.rb, line 18
def to_hash
  @origin_hash
end

Private Instance Methods

real_key(key) click to toggle source
# File lib/simple_struct.rb, line 29
def real_key key
  @a.keys.find { |k| k.to_s == key.to_s} || key
end