From 91fb7523fdca5df177181ec3c627bf13964d2d0c Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Thu, 20 Mar 2014 23:39:29 +0100 Subject: [PATCH] Lex open tags with newlines in them. --- lib/oga/lexer.rl | 2 ++ spec/oga/lexer/elements_spec.rb | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/lib/oga/lexer.rl b/lib/oga/lexer.rl index d041919..e85298a 100644 --- a/lib/oga/lexer.rl +++ b/lib/oga/lexer.rl @@ -404,6 +404,8 @@ module Oga element_head := |* whitespace | '='; + newline => { advance_line }; + # Attribute names. element_name => { t(:T_ATTR) }; diff --git a/spec/oga/lexer/elements_spec.rb b/spec/oga/lexer/elements_spec.rb index 6022c61..11a534b 100644 --- a/spec/oga/lexer/elements_spec.rb +++ b/spec/oga/lexer/elements_spec.rb @@ -33,6 +33,14 @@ describe Oga::Lexer do [:T_ELEM_NAME, 'p', 1] ] end + + example 'lex an element with a newline in the open tag' do + lex("

").should == [ + [:T_ELEM_OPEN, nil, 1], + [:T_ELEM_NAME, 'p', 1], + [:T_ELEM_CLOSE, nil, 2] + ] + end end context 'elements with attributes' do