Class: HamdownCore::FilterParser
- Inherits:
-
Object
- Object
- HamdownCore::FilterParser
- Defined in:
- lib/hamdown_core/filter_parser.rb
Instance Method Summary collapse
- #append(line) ⇒ Object
- #enabled? ⇒ Boolean
- #finish ⇒ Object
-
#initialize(indent_tracker) ⇒ FilterParser
constructor
A new instance of FilterParser.
- #start(name, filename, lineno) ⇒ Object
Constructor Details
#initialize(indent_tracker) ⇒ FilterParser
Returns a new instance of FilterParser.
6 7 8 9 10 |
# File 'lib/hamdown_core/filter_parser.rb', line 6 def initialize(indent_tracker) @ast = nil @indent_level = nil @indent_tracker = indent_tracker end |
Instance Method Details
#append(line) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/hamdown_core/filter_parser.rb', line 23 def append(line) indent, text = @indent_tracker.split(line) if text.empty? @ast.texts << '' return end indent_level = indent.size if @indent_level if indent_level < @indent_level # Finish filter @indent_level = nil ast = @ast @ast = nil return ast end elsif indent_level > @indent_tracker.current_level # Start filter @indent_level = indent_level else # Empty filter @ast = nil return nil end text = line[@indent_level..-1] @ast.texts << text nil end |
#enabled? ⇒ Boolean
12 13 14 |
# File 'lib/hamdown_core/filter_parser.rb', line 12 def enabled? !@ast.nil? end |
#finish ⇒ Object
53 54 55 |
# File 'lib/hamdown_core/filter_parser.rb', line 53 def finish @ast end |