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"]]