forked from codebrew/backbone-rails
/
install_generator.rb
39 lines (32 loc) · 1.42 KB
/
install_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
module Backbone
module Generators
class InstallGenerator < Rails::Generators::Base
source_root File.expand_path("../templates", __FILE__)
desc "This generator installs backbone.js with a default folder layout in app/assets/javascripts/backbone"
class_option :skip_git, :type => :boolean, :aliases => "-G", :default => false,
:desc => "Skip Git ignores and keeps"
def inject_backbone
inject_into_file "app/assets/javascripts/application.js", :before => "//= require_tree" do
"//= require underscore\n//= require backbone\n//= require backbone_rails_sync\n//= require backbone_datalink\n//= require backbone/#{application_name}\n"
end
end
def create_dir_layout
%W{routers models views templates}.each do |dir|
empty_directory "app/assets/javascripts/backbone/#{dir}"
create_file "app/assets/javascripts/backbone/#{dir}/.gitkeep" unless options[:skip_git]
end
end
def create_app_file
template "app.coffee", "app/assets/javascripts/backbone/#{application_name.underscore}.js.coffee"
end
protected
def application_name
if defined?(Rails) && Rails.application
Rails.application.class.name.split('::').first
else
"application"
end
end
end
end
end