Class: Hash

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

Overview


Data type alterations

Instance Method Summary collapse

Instance Method Details

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



237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'lib/coral_core.rb', line 237

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