Module: Hamlit::Concerns::LineReader
- Included in:
- Parsers::Multiline
- Defined in:
- lib/hamlit/concerns/line_reader.rb
Instance Method Summary collapse
- #current_line ⇒ Object
- #empty_line?(line) ⇒ Boolean
-
#next_line ⇒ Object
Return nearest line ignoring empty lines.
- #read_lines ⇒ Object
- #reset_lines(lines) ⇒ Object
- #skip_lines ⇒ Object
Instance Method Details
#current_line ⇒ Object
9 10 11 |
# File 'lib/hamlit/concerns/line_reader.rb', line 9 def current_line @lines[@current_lineno] end |
#empty_line?(line) ⇒ Boolean
22 23 24 |
# File 'lib/hamlit/concerns/line_reader.rb', line 22 def empty_line?(line) line =~ /\A *\Z/ end |
#next_line ⇒ Object
Return nearest line ignoring empty lines.
14 15 16 17 18 19 20 |
# File 'lib/hamlit/concerns/line_reader.rb', line 14 def next_line lineno = @current_lineno + 1 while @lines[lineno] && empty_line?(@lines[lineno]) lineno += 1 end @lines[lineno] end |
#read_lines ⇒ Object
32 33 34 35 36 37 38 39 |
# File 'lib/hamlit/concerns/line_reader.rb', line 32 def read_lines lines = [] while read_line? lines << @lines[@current_lineno + 1] @current_lineno += 1 end trim_lines(lines) end |
#reset_lines(lines) ⇒ Object
4 5 6 7 |
# File 'lib/hamlit/concerns/line_reader.rb', line 4 def reset_lines(lines) @lines = lines @current_lineno = -1 end |
#skip_lines ⇒ Object
26 27 28 29 30 |
# File 'lib/hamlit/concerns/line_reader.rb', line 26 def skip_lines while next_indent >= @current_indent @current_lineno += 1 end end |