36 lines
1.3 KiB
Ruby
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
|