Sha256: 38c55369e94df02f5a6f2ce3e2138299e6af435f70e9c33a8c9c0536281be625

Contents?: true

Size: 653 Bytes

Versions: 2

Compression:

Stored size: 653 Bytes

Contents

require 'pru/core_ext/array'

module Pru
  class << self
    def map(io, code)
      String.class_eval <<-RUBY, __FILE__, __LINE__ + 1
        def _pru(i)
          #{code}
        end
      RUBY

      i = 0
      io.each_line do |line|
        i += 1
        line.chomp!
        result = line._pru(i) or next

        case result
        when true then yield line
        when Regexp then yield line if line =~ result
        else yield result
        end
      end
    end

    def reduce(array, code)
      Array.class_eval <<-RUBY, __FILE__, __LINE__ + 1
        def _pru
          #{code}
        end
      RUBY
      array._pru
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pru-0.2.1 lib/pru.rb
pru-0.2.0 lib/pru.rb