forked from ryanb/nifty-generators
-
Notifications
You must be signed in to change notification settings - Fork 1
/
nifty_layout_generator.rb
44 lines (37 loc) · 1.16 KB
/
nifty_layout_generator.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class NiftyLayoutGenerator < Rails::Generator::Base
def initialize(runtime_args, runtime_options = {})
super
@name = @args.first || 'application'
end
def manifest
record do |m|
m.directory 'app/views/layouts'
m.directory 'public/stylesheets'
m.directory 'app/helpers'
if options[:haml]
m.directory 'public/stylesheets/sass'
m.template "layout.html.haml", "app/views/layouts/#{file_name}.html.haml"
m.file "stylesheet.sass", "public/stylesheets/sass/#{file_name}.sass"
else
m.template "layout.html.erb", "app/views/layouts/#{file_name}.html.erb"
m.file "stylesheet.css", "public/stylesheets/#{file_name}.css"
end
m.file "helper.rb", "app/helpers/layout_helper.rb"
end
end
def file_name
@name.underscore
end
protected
def add_options!(opt)
opt.separator ''
opt.separator 'Options:'
opt.on("--haml", "Generate HAML for view, and SASS for stylesheet.") { |v| options[:haml] = v }
end
def banner
<<-EOS
Creates generic layout, stylesheet, and helper files.
USAGE: #{$0} #{spec.name} [layout_name]
EOS
end
end