Module: Contentful::Management::Support

Defined in:
lib/contentful/management/support.rb

Overview

Utility methods used by the contentful management gem

Class Method Summary collapse

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

.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