Module: Enumerable

Defined in:
lib/enumerable.rb

Instance Method Summary collapse

Instance Method Details

#cleanObject



2
3
4
# File 'lib/enumerable.rb', line 2

def clean
  deep_dup.clean!
end

#clean!Object

delete hash or array values if value is nil ex: { a: nil, b: 2 }.clean! => { b: 2 }



8
9
10
11
12
13
14
# File 'lib/enumerable.rb', line 8

def clean!
  if is_a?(Hash)
    delete_if { |_k, v| empty_value?(v) }
  else
    delete_if { |v| empty_value?(v) }
  end
end

#map_and_findObject



16
17
18
19
20
21
22
# File 'lib/enumerable.rb', line 16

def map_and_find
  mapped = nil
  find do |*args|
    mapped = yield(*args)
  end
  mapped || nil
end

#map_and_selectObject



24
25
26
27
28
29
# File 'lib/enumerable.rb', line 24

def map_and_select
  mapped = map do |*args|
    yield(*args)
  end
  mapped.select { |e| e }
end

#map_to_hashObject



31
32
33
34
35
36
37
# File 'lib/enumerable.rb', line 31

def map_to_hash
  {}.tap do |hash|
    each do |element|
      hash[element] = yield(element)
    end
  end
end