Module: Roconv

Extended by:
Roconv
Included in:
Roconv
Defined in:
lib/roconv.rb,
lib/roconv/version.rb

Constant Summary collapse

VERSION =
"0.0.1"

Instance Method Summary collapse

Instance Method Details

#convert(obj) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/roconv.rb', line 6

def convert(obj)
    map_recursive(obj) do |val|
        case val
        when /(\d+)(\.\.\.|\.\.)(\d+)/
            Range.new($1.to_i, $3.to_i, $2 == "...")
        when /:(\w+)/
            $1.intern
        else
            val
        end
    end
end

#map_recursive(obj, &block) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/roconv.rb', line 19

def map_recursive(obj, &block)
    case obj
    when Array
        obj.map{|e| map_recursive(e, &block) }
    when Hash
        obj.each do |key, val|
            obj[key] = map_recursive(val, &block)
        end
    else
        yield obj
    end
end