Module: Plazucchini::Utils

Included in:
Request, XmlParser
Defined in:
lib/plazucchini/utils.rb

Instance Method Summary collapse

Instance Method Details

#deep_transform_keys(obj) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/plazucchini/utils.rb', line 25

def deep_transform_keys(obj)
  case obj
  when Hash
    obj.each_with_object({}) do |(key, value), result|
      result[to_snake_case(key)] = deep_transform_keys(value)
    end
  when Array
    obj.map { |item| deep_transform_keys(item) }
  else
    obj
  end
end

#make_user_agentObject



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/plazucchini/utils.rb', line 5

def make_user_agent
  requa = "Faraday/v" + Faraday::VERSION
  habua = "Plazucchini/v" + Plazucchini::VERSION
  if Plazucchini.mailto
    mailto = "mailto:" + Plazucchini.mailto
    ua = requa + " " + habua + " " + mailto
  else
    ua = requa + " " + habua
  end
  ua
end

#to_snake_case(str) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/plazucchini/utils.rb', line 17

def to_snake_case(str)
  str.to_s
     .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
     .gsub(/([a-z\d])([A-Z])/, '\1_\2')
     .gsub(/[-.]/, '_')
     .downcase
end