Module: Roconv
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 |