class HamdownCore::FilterParser
Public Class Methods
new(indent_tracker)
click to toggle source
# File lib/hamdown_core/filter_parser.rb, line 6 def initialize(indent_tracker) @ast = nil @indent_level = nil @indent_tracker = indent_tracker end
Public Instance Methods
append(line)
click to toggle source
# 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?()
click to toggle source
# File lib/hamdown_core/filter_parser.rb, line 12 def enabled? !@ast.nil? end
finish()
click to toggle source
# File lib/hamdown_core/filter_parser.rb, line 53 def finish @ast end
start(name, filename, lineno)
click to toggle source
# File lib/hamdown_core/filter_parser.rb, line 16 def start(name, filename, lineno) @ast = Ast::Filter.new @ast.name = name @ast.filename = filename @ast.lineno = lineno end