haml--haml-rails/lib/rails/generators/haml/application_layout/application_layout_generato...

36 lines
1.3 KiB
Ruby

require 'rails'
require 'shellwords'
module Haml
module Generators
class ApplicationLayoutGenerator < ::Rails::Generators::Base
HTML_LAYOUT_PATH = 'app/views/layouts/application.html.erb'
HAML_LAYOUT_PATH = 'app/views/layouts/application.html.haml'
# Converts existing application.html.erb to haml format,
# and creates app/views/layouts/application.html.haml
# with some error checking.
def convert
app_layout_from = ::Rails.root.join(HTML_LAYOUT_PATH).to_s
app_layout_to = ::Rails.root.join(HAML_LAYOUT_PATH).to_s
if File.exist?(app_layout_from)
if !File.exist?(app_layout_to)
`html2haml #{app_layout_from.shellescape} #{app_layout_to.shellescape}`
if $?.success?
puts "Success! app/views/layouts/application.html.haml is created.\n" \
"Please remove the erb file: app/views/layouts/application.html.erb"
else
puts "Error! Failed to execute html2haml command."
end
else
puts "Error! There is a file named app/views/layouts/application.html.haml already."
end
else
puts "Error! There is no file named app/views/layouts/application.html.erb."
end
end
end
end
end