Module: CiderCI::RspecSupport::Util

Defined in:
lib/cider_ci/rspec_support/util.rb

Constant Summary collapse

IDENDITY =
->(x) { x }

Class Method Summary collapse

Class Method Details

.deep_stringify_keys(object) ⇒ Object



27
28
29
# File 'lib/cider_ci/rspec_support/util.rb', line 27

def deep_stringify_keys(object)
  transform(object, ->(x) { x.to_s })
end

.deep_symbolize_keys(object) ⇒ Object



23
24
25
# File 'lib/cider_ci/rspec_support/util.rb', line 23

def deep_symbolize_keys(object)
  transform(object, ->(x) { x.to_sym })
end

.transform(object, key_transformer = IDENDITY, value_transformer = IDENDITY) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/cider_ci/rspec_support/util.rb', line 7

def transform(object, 
              key_transformer = IDENDITY, 
              value_transformer = IDENDITY) 
  case object
  when Hash
    Hash[object.map do |k, v| 
      [key_transformer.call(k), 
       transform(v, key_transformer, value_transformer)]
    end]
  when Array
    object.map { |v| transform(v, key_transformer, value_transformer) }
  else
    value_transformer.call(object)
  end
end