Module: Pangea::Utils
- Defined in:
- lib/pangea-orchestrator/utils.rb
Class Method Summary collapse
- .component(kwargs) ⇒ Object
-
.deep_merge(hash1, hash2) ⇒ Object
Recursively deep merges two hashes.
- .pretty(hash) ⇒ Object
- .symbolize(hash) ⇒ Object
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 |