Class: FileIterator::FileIterator
- Inherits:
-
Object
- Object
- FileIterator::FileIterator
- Defined in:
- lib/file_iterator.rb
Instance Method Summary collapse
-
#initialize(input = nil, output = ARGV[1]) ⇒ FileIterator
constructor
A new instance of FileIterator.
- #iterate ⇒ Object
- #to_a ⇒ Object
Constructor Details
#initialize(input = nil, output = ARGV[1]) ⇒ FileIterator
Returns a new instance of FileIterator.
5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/file_iterator.rb', line 5 def initialize(input = nil, output = ARGV[1]) @outputfile = output if input @inputfile = input else @inputfile = ARGV[0] unless @inputfile puts "usage: #{__FILE__} inputfile [outputfile]" exit 1 end end end |
Instance Method Details
#iterate ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/file_iterator.rb', line 18 def iterate File.open(@inputfile,'r') do | file| begin if (@outputfile) out = File.open(@outputfile,'w') else out = $stdout end file.each_line do | line | yield(line, out) end rescue raise ensure out.close if @outputfile end end end |
#to_a ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/file_iterator.rb', line 36 def to_a File.open(@inputfile,'r') do | file| result = [] begin if (@outputfile) out = File.open(@outputfile,'w') else out = $stdout end file.each_line do | line | if block_given? result << yield(line) else result << line end end rescue raise ensure out.close if @outputfile end result end end |