Method: Map#param_for

Defined in:
lib/map/params.rb

#param_for(*args, &block) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/map/params.rb', line 2

def param_for(*args, &block)
  options = Map.options_for!(args)

  prefix = options[:prefix] || 'map'

  src_key = args.flatten.map{|arg| Map.alphanumeric_key_for(arg)}

  dst_key = src_key.map{|k| k.is_a?(Numeric) ? 0 : k}

  src = self
  dst = Map.new

  value =
    if options.has_key?(:value)
      options[:value]
    else
      src.get(src_key).to_s
    end

  dst.set(dst_key, value)

  Param.param_for(dst, prefix)
end