Module: MarathonDeploy::Utils

Defined in:
lib/marathon_deploy/utils.rb

Class Method Summary collapse

Class Method Details

.deep_symbolize(obj) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/marathon_deploy/utils.rb', line 8

def self.deep_symbolize(obj)
  return obj.reduce({}) do |memo, (k, v)|
    memo.tap { |m| m[k.to_sym] = deep_symbolize(v) }
  end if obj.is_a? Hash
  
  return obj.reduce([]) do |memo, v| 
    memo << deep_symbolize(v); memo
  end if obj.is_a? Array

  obj
end

.randomObject



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

def self.random
  range = [*'0'..'9',*'A'..'Z',*'a'..'z']
  return Array.new(30){ range.sample }.join
end

.response_body(response) ⇒ Object



25
26
27
28
29
30
# File 'lib/marathon_deploy/utils.rb', line 25

def self.response_body(response)
  if (response.is_a?(Net::HTTPResponse) && !response.body.nil?)
    return deep_symbolize((JSON.parse(response.body)))
  end
  return nil
end

.symbolize(data) ⇒ Object



4
5
6
# File 'lib/marathon_deploy/utils.rb', line 4

def self.symbolize(data) 
  data.inject({}){|h,(k,v)| h[k.to_sym] = v; h}
end