Module: Contentful::Management::Support
- Defined in:
- lib/contentful/management/support.rb
Overview
Utility methods used by the contentful management gem
Class Method Summary collapse
-
.deep_hash_merge(query_hash, attribute_hash) ⇒ Object
Merges two hashes with recursion.
- .normalize_select!(parameters) ⇒ Object
-
.snakify(object) ⇒ Object
Transforms CamelCase into snake_case (taken from zucker).
Class Method Details
.deep_hash_merge(query_hash, attribute_hash) ⇒ Object
Merges two hashes with recursion
13 14 15 16 17 18 19 |
# File 'lib/contentful/management/support.rb', line 13 def deep_hash_merge(query_hash, attribute_hash) query_hash.merge(attribute_hash) do |_key, oldval, newval| oldval = oldval.to_hash if oldval.respond_to?(:to_hash) newval = newval.to_hash if newval.respond_to?(:to_hash) oldval.class.to_s == 'Hash' && newval.class.to_s == 'Hash' ? deep_hash_merge(oldval, newval) : newval end end |
.normalize_select!(parameters) ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/contentful/management/support.rb', line 21 def normalize_select!(parameters) return parameters unless parameters.key?(:select) parameters[:select] = parameters[:select].split(',').map(&:strip) if parameters[:select].is_a? String parameters[:select] = parameters[:select].reject { |p| p.start_with?('sys.') } parameters[:select] << 'sys' unless parameters[:select].include?('sys') parameters[:select] = parameters[:select].join(',') parameters end |
.snakify(object) ⇒ Object
Transforms CamelCase into snake_case (taken from zucker)
7 8 9 10 |
# File 'lib/contentful/management/support.rb', line 7 def snakify(object) snake = String(object).gsub(/(?<!^)[A-Z]/) { "_#$&" } snake.downcase end |