Module: EasyPing::Utils

Included in:
Action, Base
Defined in:
lib/easy_ping/utils.rb

Instance Method Summary collapse

Instance Method Details

#indifferent_hash(hash) ⇒ Object

turn symbol keys to string keys, shallow mode



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

def indifferent_hash(hash)
  Hash[hash.map {|k, v| Symbol === k ? [k.to_s, v] : [k, v] }]
end

#indifferent_params(args, *names) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/easy_ping/utils.rb', line 8

def indifferent_params(args, *names)
  params = args.pop
  if params
    if Hash === params
      params = indifferent_hash(params)
    else
      args.push(params)
      params = {}
    end
    args.zip(names) {|arg, name| params.merge!(name => arg) if arg }
  else
    raise ArgumentError, "wrong number of arguments (0 for at least 1)"
  end

  params
end