1
0
Fork 0
mirror of https://github.com/haml/haml.git synced 2022-11-09 12:33:31 -05:00
haml--haml/lib/hamlit/script_compiler.rb
2015-03-15 04:22:43 +09:00

23 lines
495 B
Ruby

require 'temple/filter'
module Hamlit
class ScriptCompiler < Temple::Filter
def on_haml_script(*exps)
exps = exps.dup
variable = result_identifier
code = exps.shift
assign = [:code, "#{variable} = #{code}"]
result = [:dynamic, variable]
[:multi, assign, *exps, result]
end
private
def result_identifier
@id_auto_increment ||= -1
@id_auto_increment += 1
"_hamlit_compiler#{@id_auto_increment}"
end
end
end