module Liquid::ParserSwitching

Public Instance Methods

parse_with_selected_parser(markup) click to toggle source
# File lib/liquid/parser_switching.rb, line 17
def parse_with_selected_parser(markup)
  case parse_context.error_mode
  when :strict then strict_parse_with_error_context(markup)
  when :lax    then lax_parse(markup)
  when :warn
    begin
      strict_parse_with_error_context(markup)
    rescue SyntaxError => e
      parse_context.warnings << e
      lax_parse(markup)
    end
  end
end
strict_parse_with_error_mode_fallback(markup) click to toggle source
# File lib/liquid/parser_switching.rb, line 5
def strict_parse_with_error_mode_fallback(markup)
  strict_parse_with_error_context(markup)
rescue SyntaxError => e
  case parse_context.error_mode
  when :strict
    raise
  when :warn
    parse_context.warnings << e
  end
  lax_parse(markup)
end

Private Instance Methods

markup_context(markup) click to toggle source
# File lib/liquid/parser_switching.rb, line 41
def markup_context(markup)
  "in \"#{markup.strip}\""
end
strict_parse_with_error_context(markup) click to toggle source
# File lib/liquid/parser_switching.rb, line 33
def strict_parse_with_error_context(markup)
  strict_parse(markup)
rescue SyntaxError => e
  e.line_number    = line_number
  e.markup_context = markup_context(markup)
  raise e
end