Class: Plunk::Utils

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

Class Method Summary collapse

Class Method Details

.extract_values(hash, keys) ⇒ Object

nested field matcher



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/plunk/utils.rb', line 4

def self.extract_values(hash, keys)
  @vals ||= []

  hash.each_pair do |k, v|
    if v.is_a? Hash
      extract_values(v, keys)
    elsif v.is_a? Array
      v.flatten!
      if v.first.is_a? Hash
        v.each { |el| extract_values(el, keys) }
      elsif keys.include? k
        @vals += v
      end
    elsif keys.include? k
      @vals << v
    end
  end

  return @vals
end