-
Notifications
You must be signed in to change notification settings - Fork 254
/
Copy pathinstall_generator.rb
34 lines (26 loc) · 1.27 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
require 'generators/backbone/resource_helpers'
module Backbone
module Generators
class InstallGenerator < Rails::Generators::Base
include Backbone::Generators::ResourceHelpers
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.underscore}\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.#{script_extension}", "app/assets/javascripts/backbone/#{application_name.underscore}.#{script_extension}"
end
end
end
end