Class: Twig::TokenParser::Apply
- Defined in:
- lib/twig/token_parser/apply.rb
Overview
Applies filters on a section of a template.
apply upper %
This text becomes uppercase
endapply %
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Instance Method Details
#parse(token) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/twig/token_parser/apply.rb', line 11 def parse(token) lineno = token.lineno ref = Node::Expression::Variable::Local.new(nil, lineno) filter = ref ep = parser.environment.expression_parsers.by_class(ExpressionParser::Infix::Filter.name) loop do filter = ep.parse(parser, filter, parser.current_token) unless parser.stream.test(Token::OPERATOR_TYPE, '|') break end parser.stream.next end parser.stream.expect(Token::BLOCK_END_TYPE) body = parser.subparse(method(:decide_apply_end), drop_needle: true) parser.stream.expect(Token::BLOCK_END_TYPE) Node::Nodes.new({ 0 => Node::Set.new(true, ref, body, lineno), 1 => Node::Print.new(filter, lineno), }, lineno) end |
#tag ⇒ Object
37 38 39 |
# File 'lib/twig/token_parser/apply.rb', line 37 def tag 'apply' end |