Method: L43::OpenObject::Initializer#define_to_h

Defined in:
lib/l43/open_object/initializer.rb

#define_to_h(klass, keys) ⇒ Object



42
43
44
45
46
47
48
49
# File 'lib/l43/open_object/initializer.rb', line 42

def define_to_h(klass, keys)
  klass.define_method :to_h do |*|
    @__to_h__ ||= keys.inject({}) do |r, k|
      r.update(k => instance_variable_get("@#{k}"))
    end
  end
  klass.alias_method :deconstruct_keys, :to_h
end