Class: HashieMashKnockoff::AddInstanceMethods

Inherits:
Object
  • Object
show all
Defined in:
lib/hashie_mash_knockoff/add_instance_methods.rb

Instance Method Summary collapse

Instance Method Details

#add(hashie_mash_knockoff, kwargs) ⇒ Object



3
4
5
6
7
# File 'lib/hashie_mash_knockoff/add_instance_methods.rb', line 3

def add(hashie_mash_knockoff, kwargs)
  kwargs.each do |key, value|
    define_method(hashie_mash_knockoff, key, value)
  end
end

#define_method(hashie_mash_knockoff, name, value) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/hashie_mash_knockoff/add_instance_methods.rb', line 9

def define_method(hashie_mash_knockoff, name, value)
  return_value = method_value(value)

  hashie_mash_knockoff.send(:define_singleton_method, name) do
    return_value
  end
end

#has_keys?(value) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/hashie_mash_knockoff/add_instance_methods.rb', line 21

def has_keys?(value)
  value.keys.size > 0
end

#hashie_mash_knockoff(hash) ⇒ Object



17
18
19
# File 'lib/hashie_mash_knockoff/add_instance_methods.rb', line 17

def hashie_mash_knockoff(hash)
  HashieMashKnockoff.new(hash)
end

#method_value(value) ⇒ Object



29
30
31
# File 'lib/hashie_mash_knockoff/add_instance_methods.rb', line 29

def method_value(value)
  should_be_a_hashie_mash_knockoff?(value) ? hashie_mash_knockoff(value) : value
end

#should_be_a_hashie_mash_knockoff?(value) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/hashie_mash_knockoff/add_instance_methods.rb', line 25

def should_be_a_hashie_mash_knockoff?(value)
  Srm.is_a_hash?(value) && has_keys?(value)
end