Class: Humr::Splitter::Default
- Inherits:
-
Object
- Object
- Humr::Splitter::Default
- Defined in:
- lib/humr/splitter/default.rb
Instance Method Summary collapse
Instance Method Details
#sub_each_field(line, &block) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/humr/splitter/default.rb', line 8 def sub_each_field(line, &block) scanner = StringScanner.new(line) result = '' index = 1 loop do if s = scanner.scan(/".*?"|\[.*?\]/) result << s[0] result << yield(s[1..-2], index) result << s[-1] index += 1 elsif s = scanner.scan(/\S+/) result << yield(s, index) index += 1 elsif not scanner.eos? result << scanner.scan(/\s*/) else break end end result end |