1
0
Fork 0
mirror of https://github.com/haml/haml.git synced 2022-11-09 12:33:31 -05:00

Add ugly mode for cli

This commit is contained in:
Takashi Kokubun 2015-03-28 12:17:19 +09:00
parent 5ce029a61b
commit e8269b6c66

View file

@ -6,18 +6,21 @@ module Hamlit
IGNORED_COMPILERS = ['HTML'].freeze IGNORED_COMPILERS = ['HTML'].freeze
desc 'render HAML', 'Render haml template' desc 'render HAML', 'Render haml template'
option :ugly, type: :boolean, aliases: ['-u']
def render(file) def render(file)
code = generate_code(file) code = generate_code(file)
puts eval(code) puts eval(code)
end end
desc 'compile HAML', 'Show generated rendering code' desc 'compile HAML', 'Show generated rendering code'
option :ugly, type: :boolean, aliases: ['-u']
def compile(file) def compile(file)
code = generate_code(file) code = generate_code(file)
puts code puts code
end end
desc 'temple HAML', 'Show a compile result of hamlit AST' desc 'temple HAML', 'Show a compile result of hamlit AST'
option :ugly, type: :boolean, aliases: ['-u']
def temple(file) def temple(file)
pp generate_temple_ast(file) pp generate_temple_ast(file)
end end
@ -38,7 +41,7 @@ module Hamlit
def generate_code(file) def generate_code(file)
template = File.read(file) template = File.read(file)
Hamlit::Engine.new.call(template) Hamlit::Engine.new(options).call(template)
end end
def generate_temple_ast(file) def generate_temple_ast(file)
@ -49,7 +52,7 @@ module Hamlit
template = File.read(file) template = File.read(file)
compilers.inject(template) do |exp, compiler| compilers.inject(template) do |exp, compiler|
Module.const_get(compiler).new.call(exp) Module.const_get(compiler).new(options).call(exp)
end end
end end
@ -74,5 +77,13 @@ module Hamlit
def ignored_compilers def ignored_compilers
IGNORED_COMPILERS.map { |name| "Hamlit::#{name}" } IGNORED_COMPILERS.map { |name| "Hamlit::#{name}" }
end end
def options
symbolize_keys(super)
end
def symbolize_keys(hash)
{}.tap { |h| hash.each { |k, v| h[k.to_sym] = v } }
end
end end
end end