Module: Liquid::ParserSwitching

Included in:
Tag, Variable
Defined in:
lib/liquid/parser_switching.rb

Instance Method Summary collapse

Instance Method Details

#parse_with_selected_parser(markup) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/liquid/parser_switching.rb', line 32

def parse_with_selected_parser(markup)
  case parse_context.error_mode
  when :rigid   then rigid_warn && strict2_parse_with_error_context(markup)
  when :strict2 then strict2_parse_with_error_context(markup)
  when :strict  then strict_parse_with_error_context(markup)
  when :lax     then lax_parse(markup)
  when :warn
    begin
      strict2_parse_with_error_context(markup)
    rescue SyntaxError => e
      parse_context.warnings << e
      lax_parse(markup)
    end
  end
end

#strict2_mode?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/liquid/parser_switching.rb', line 48

def strict2_mode?
  parse_context.error_mode == :strict2 || parse_context.error_mode == :rigid
end

#strict_parse_with_error_mode_fallback(markup) ⇒ Object

Deprecated.

Do not use this.

It’s basically doing the same thing the #parse_with_selected_parser, except this will try the strict parser regardless of the error mode, and fall back to the lax parser if the error mode is lax or warn, except when in strict2 mode where it uses the strict2 parser.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/liquid/parser_switching.rb', line 13

def strict_parse_with_error_mode_fallback(markup)
  return strict2_parse_with_error_context(markup) if strict2_mode?

  strict_parse_with_error_context(markup)
rescue SyntaxError => e
  case parse_context.error_mode
  when :rigid
    rigid_warn
    raise
  when :strict2
    raise
  when :strict
    raise
  when :warn
    parse_context.warnings << e
  end
  lax_parse(markup)
end