Module: Pangea::Utils

Defined in:
lib/pangea-orchestrator/utils.rb

Class Method Summary collapse

Class Method Details

.component(kwargs) ⇒ Object



4
5
6
7
8
9
10
# File 'lib/pangea-orchestrator/utils.rb', line 4

def component(kwargs)
  resource(kwargs[:type], kwargs[:name]) do
    kwargs[:attrs].each_key do |k|
      send(k, kwargs[:attrs][k])
    end
  end
end

.deep_merge(hash1, hash2) ⇒ Object

Recursively deep merges two hashes.



21
22
23
24
25
26
27
28
29
# File 'lib/pangea-orchestrator/utils.rb', line 21

def deep_merge(hash1, hash2)
  hash1.merge(hash2) do |_, old_val, new_val|
    if old_val.is_a?(Hash) && new_val.is_a?(Hash)
      deep_merge(old_val, new_val)
    else
      new_val
    end
  end
end

.pretty(hash) ⇒ Object



12
13
14
# File 'lib/pangea-orchestrator/utils.rb', line 12

def pretty(hash)
  JSON.pretty_generate(hash)
end

.symbolize(hash) ⇒ Object



16
17
18
# File 'lib/pangea-orchestrator/utils.rb', line 16

def symbolize(hash)
  JSON[JSON[hash], symbolize_names: true]
end