Module: Promoted::Ruby::Client::Util

Defined in:
lib/promoted/ruby/client/util.rb

Class Method Summary collapse

Class Method Details

.translate_array(arr) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/promoted/ruby/client/util.rb', line 5

def self.translate_array(arr)
  sym_arr = Array.new(arr.length)
  arr.each_with_index do |v, i|
    new_v = v
    case v
    when Hash
      new_v = translate_hash(v)
    when Array
      new_v = translate_array(v)
    end
    sym_arr[i] = new_v
  end
  sym_arr
end

.translate_hash(args) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/promoted/ruby/client/util.rb', line 20

def self.translate_hash(args)
  sym_hash = {}
  args.each do |k, v|
    new_key = k.to_s.to_underscore.to_sym
    case v
    when Hash
      sym_hash[new_key] = translate_hash(v)
    when Array
      sym_hash[new_key] = translate_array(v)
    else
      sym_hash[new_key] = v
    end
  end
  sym_hash
  rescue
    raise 'Unable to parse args. Please pass correct arguments. Must be JSON'
end