Class: Recls::FileSearchLineEnumerator

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/recls/foreach.rb

Instance Method Summary collapse

Constructor Details

#initialize(fs) ⇒ FileSearchLineEnumerator

Returns a new instance of FileSearchLineEnumerator.



48
49
50
51
# File 'lib/recls/foreach.rb', line 48

def initialize(fs)

  @fs = fs
end

Instance Method Details

#each(&block) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/recls/foreach.rb', line 53

def each(&block)

  @fs.each do |fe|

    IO::readlines(fe).each_with_index do |line, index|

      case block.arity
      when 1
        yield line
      when 2
        yield line, index
      when 3
        yield line, index, fe
      else
        raise ArgumentError, "block must take 1, 2, or 3 parameters - #{block.arity} given. (Perhaps you have applied each_with_index, which cannot be done to Recls.foreach)"
      end
    end
  end
end