Class: Cane::EncodingAwareIterator
- Inherits:
-
Object
- Object
- Cane::EncodingAwareIterator
- Includes:
- Enumerable
- Defined in:
- lib/cane/encoding_aware_iterator.rb
Overview
Provides iteration over lines (from a file), correctly handling encoding.
Instance Method Summary collapse
- #each(&block) ⇒ Object
-
#initialize(lines) ⇒ EncodingAwareIterator
constructor
A new instance of EncodingAwareIterator.
Constructor Details
#initialize(lines) ⇒ EncodingAwareIterator
Returns a new instance of EncodingAwareIterator.
7 8 9 |
# File 'lib/cane/encoding_aware_iterator.rb', line 7 def initialize(lines) @lines = lines end |
Instance Method Details
#each(&block) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/cane/encoding_aware_iterator.rb', line 11 def each(&block) return self.to_enum unless block lines.each do |line| begin line =~ /\s/ rescue ArgumentError line.encode!('UTF-8', 'binary', invalid: :replace, undef: :replace) end block.call(line) end end |