Method: CTG::Response::JSONResponse#find_all

Defined in:
lib/ctg/response/json_response.rb

#find_all(key) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/ctg/response/json_response.rb', line 73

def find_all(key)
  results = []
  stack = [@data]

  until stack.empty?
    current_data = stack.pop

    case current_data
    when Hash
      results << current_data[key] if current_data.key?(key)
      stack.concat(current_data.values)
    when Array
      stack.concat(current_data)
    end
  end

  results.compact
end