Module: Contentful::DatabaseImporter::Support

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

Overview

Helpers

Class Method Summary collapse

Class Method Details

.deep_hash_merge(hash1, hash2) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/contentful/database_importer/support.rb', line 13

def self.deep_hash_merge(hash1, hash2)
  result = {}
  hash1.each do |key, value|
    value2 = hash2[key]
    result[key] = merge(value, value2)
  end

  hash2.each do |key, value|
    next if hash1.keys.include?(key)
    result[key] = value
  end

  result
end

.merge(value, value2) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/contentful/database_importer/support.rb', line 28

def self.merge(value, value2)
  if value.is_a?(::Hash) && value2.is_a?(::Hash)
    deep_hash_merge(value, value2)
  elsif value.is_a?(::Array) && value2.is_a?(::Array)
    value + value2
  else
    value || value2
  end
end

.snake_case(string) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/contentful/database_importer/support.rb', line 5

def self.snake_case(string)
  string.gsub(/::/, '/')
        .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
        .gsub(/([a-z\d])([A-Z])/, '\1_\2')
        .tr('-', '_')
        .downcase
end