Module: CodeTeams::Utils

Extended by:
T::Sig
Defined in:
lib/code_teams/utils.rb

Class Method Summary collapse

Class Method Details

.deep_stringify_keys(value) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/code_teams/utils.rb', line 27

def deep_stringify_keys(value)
  case value
  when Hash
    value.each_with_object({}) do |(k, v), acc|
      acc[k.to_s] = deep_stringify_keys(v)
    end
  when Array
    value.map { |v| deep_stringify_keys(v) }
  else
    value
  end
end

.demodulize(string) ⇒ Object



21
22
23
# File 'lib/code_teams/utils.rb', line 21

def demodulize(string)
  T.must(string.split('::').last)
end

.underscore(string) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/code_teams/utils.rb', line 12

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