Module: Line::Message::RSpec::Matchers::Utils

Defined in:
lib/line/message/rspec/matchers/utils.rb

Overview

:nodoc:

Class Method Summary collapse

Class Method Details

.stringify_keys!(arg, deep: false) ⇒ Object

rubocop:disable Metrics/CyclomaticComplexity, Metrics/MethodLength



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/line/message/rspec/matchers/utils.rb', line 9

def self.stringify_keys!(arg, deep: false) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/MethodLength
  case arg
  when Hash
    Hash[
      *arg.map { |key, value| [key.to_s, deep ? stringify_keys!(value, deep: deep) : value] }
          .inject([]) { |memo, pair| memo + pair }
    ]
  when Array
    arg.map { |item| deep ? stringify_keys!(item, deep: deep) : item }
  else
    arg
  end
end