vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb in radiant-0.7.2 vs vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb in radiant-0.8.0

- old
+ new

@@ -148,11 +148,18 @@ return Text.new(parent, line, pos, content) end end if scanner.skip(/!\[CDATA\[/) - scanner.scan_until(/\]\]>/) + unless scanner.skip_until(/\]\]>/) + if strict + raise "expected ]]> (got #{scanner.rest.inspect} for #{content})" + else + scanner.skip_until(/\Z/) + end + end + return CDATA.new(parent, line, pos, scanner.pre_match.gsub(/<!\[CDATA\[/, '')) end closing = ( scanner.scan(/\//) ? :close : nil ) return Text.new(parent, line, pos, content) unless name = scanner.scan(/[\w:-]+/) @@ -263,10 +270,10 @@ # A CDATA node is simply a text node with a specialized way of displaying # itself. class CDATA < Text #:nodoc: def to_s - "<![CDATA[#{super}]>" + "<![CDATA[#{super}]]>" end end # A Tag is any node that represents markup. It may be an opening tag, a # closing tag, or a self-closing tag. It has a name, and may have a hash of