Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/coral_core/mod/hash.rb

Overview


Hash data type alterations

Instance Method Summary collapse

Instance Method Details

#search(search_key, options = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/coral_core/mod/hash.rb', line 6

def search(search_key, options = {})
  config = Coral::Config.ensure(options)
  value  = nil
  
  recurse       = config.get(:recurse, false)
  recurse_level = config.get(:recurse_level, -1)
      
  self.each do |key, data|
    if key == search_key
      value = data
      
    elsif data.is_a?(Hash) && 
      recurse && (recurse_level == -1 || recurse_level > 0)
      
      recurse_level -= 1 unless recurse_level == -1
      value = value.search(search_key, 
        Coral::Config.new(config).set(:recurse_level, recurse_level)
      )
    end
    break unless value.nil?
  end
  return value
end