Class: Humr::Splitter::Pattern
- Inherits:
-
Object
- Object
- Humr::Splitter::Pattern
- Defined in:
- lib/humr/splitter/pattern.rb
Instance Method Summary collapse
-
#initialize(pattern) ⇒ Pattern
constructor
A new instance of Pattern.
- #sub_each_field(line, &block) ⇒ Object
Constructor Details
#initialize(pattern) ⇒ Pattern
Returns a new instance of Pattern.
8 9 10 11 |
# File 'lib/humr/splitter/pattern.rb', line 8 def initialize(pattern) @pattern = Regexp.new(pattern) @pattern_la = Regexp.new("(?=#{pattern})") end |
Instance Method Details
#sub_each_field(line, &block) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/humr/splitter/pattern.rb', line 13 def sub_each_field(line, &block) scanner = StringScanner.new(line) result = '' index = 1 loop do field = scanner.scan_until(@pattern_la) if field result << yield(field, index) result << scanner.scan(@pattern) index += 1 else result << yield(scanner.rest, index) break end end result end |