Sha256: a6169cdf82393091507e32ebd068c43d3059cba3af6ee654a4dacc4fdafc8b0a

Contents?: true

Size: 530 Bytes

Versions: 1

Compression:

Stored size: 530 Bytes

Contents

module Transproc
  register(:array_recursion) do |value, fn|
    result = fn[value]

    result.map! do |item|
      if item.is_a?(::Array)
        Transproc(:array_recursion, fn)[item]
      else
        item
      end
    end
  end

  register(:hash_recursion) do |value, fn|
    result = fn[value]

    result.keys.each do |key|
      item = result.delete(key)

      if item.is_a?(::Hash)
        result[key] = Transproc(:hash_recursion, fn)[item]
      else
        result[key] = item
      end
    end

    result
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
transproc-0.1.3 lib/transproc/recursion.rb