Module: JsonSchemaSpec::Util

Defined in:
lib/json_schema_spec/util.rb

Class Method Summary collapse

Class Method Details

.deep_dup(hash) ⇒ Object



4
5
6
7
8
9
10
11
# File 'lib/json_schema_spec/util.rb', line 4

def deep_dup(hash)
  duplicate = hash.dup
  duplicate.each_pair do |k,v|
    tv = duplicate[k]
    duplicate[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? deep_dup(tv) : v
  end
  duplicate
end

.deep_merge(hash, other_hash) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/json_schema_spec/util.rb', line 13

def deep_merge(hash, other_hash)
  other_hash.each_pair do |k,v|
    tv = hash[k]
    hash[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? deep_merge(tv, v) : v
  end
  hash
end

.symbolize_keys(hash) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/json_schema_spec/util.rb', line 21

def symbolize_keys(hash)
  hash.inject({}) do |memo, (key, value)|
    key       = (key.to_sym rescue key) || key
    value     = symbolize_keys(value)   if value.is_a?(Hash)
    memo[key] = value
    memo
  end
end