Class: HashIsh::AddInstanceMethods

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

Instance Method Summary collapse

Instance Method Details

#add(hash_ish, kwargs) ⇒ Object



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

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

#define_method(hash_ish, name, value) ⇒ Object



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

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

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

#has_keys?(value) ⇒ Boolean

Returns:

  • (Boolean)


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

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

#hash_ish(hash) ⇒ Object



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

def hash_ish(hash)
  HashIsh.new(hash)
end

#method_value(value) ⇒ Object



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

def method_value(value)
  should_be_a_hash_ish?(value) ? hash_ish(value) : value
end

#should_be_a_hash_ish?(value) ⇒ Boolean

Returns:

  • (Boolean)


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

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