lib/faml/compiler.rb in faml-0.2.16 vs lib/faml/compiler.rb in faml-0.3.0

- old
+ new

@@ -1,8 +1,8 @@ require 'parser/current' require 'temple' -require 'faml/ast' +require 'haml_parser/ast' require 'faml/error' require 'faml/filter_compilers' require 'faml/helpers' require 'faml/rails_helpers' require 'faml/static_hash_parser' @@ -53,29 +53,29 @@ private def compile(ast) case ast - when Ast::Root + when HamlParser::Ast::Root compile_root(ast) - when Ast::Doctype + when HamlParser::Ast::Doctype compile_doctype(ast) - when Ast::HtmlComment + when HamlParser::Ast::HtmlComment compile_html_comment(ast) - when Ast::HamlComment + when HamlParser::Ast::HamlComment compile_haml_comment(ast) - when Ast::Empty + when HamlParser::Ast::Empty [:multi] - when Ast::Element + when HamlParser::Ast::Element compile_element(ast) - when Ast::Script + when HamlParser::Ast::Script compile_script(ast) - when Ast::SilentScript + when HamlParser::Ast::SilentScript compile_silent_script(ast) - when Ast::Text + when HamlParser::Ast::Text compile_text(ast) - when Ast::Filter + when HamlParser::Ast::Filter compile_filter(ast) else raise "InternalError: Unknown AST node #{ast.class}: #{ast.inspect}" end end @@ -106,29 +106,29 @@ end end def need_newline?(child) case child - when Ast::Script + when HamlParser::Ast::Script child.children.empty? - when Ast::SilentScript, Ast::HamlComment, Ast::Empty + when HamlParser::Ast::SilentScript, HamlParser::Ast::HamlComment, HamlParser::Ast::Empty false - when Ast::Element + when HamlParser::Ast::Element !child.nuke_outer_whitespace - when Ast::Filter + when HamlParser::Ast::Filter FilterCompilers.find(child.name).need_newline? else true end end def suppress_code_newline?(ast) - ast.is_a?(Ast::Script) || - ast.is_a?(Ast::SilentScript) || - (ast.is_a?(Ast::Element) && suppress_code_newline?(ast.oneline_child)) || - (ast.is_a?(Ast::Element) && !ast.children.empty?) || - (ast.is_a?(Ast::HtmlComment) && !ast.conditional.empty?) + ast.is_a?(HamlParser::Ast::Script) || + ast.is_a?(HamlParser::Ast::SilentScript) || + (ast.is_a?(HamlParser::Ast::Element) && suppress_code_newline?(ast.oneline_child)) || + (ast.is_a?(HamlParser::Ast::Element) && !ast.children.empty?) || + (ast.is_a?(HamlParser::Ast::HtmlComment) && !ast.conditional.empty?) end def compile_text(ast) @text_compiler.compile(ast.text, ast.lineno, escape_html: ast.escape_html) end @@ -371,12 +371,10 @@ if ast.children.empty? temple << [:code, "#{sym} = (#{ast.script}"] << [:newline] << [:code, ')'] else temple << [:code, "#{sym} = #{ast.script}"] << [:newline] compile_children(ast, temple) - if !ast.mid_block_keyword - temple << [:code, 'end'] - end + temple << [:code, 'end'] end if !ast.escape_html && ast.preserve temple << [:haml, :preserve, sym] else temple << [:escape, ast.escape_html, [:dynamic, "#{sym}.to_s"]]