lib/generators/backbone/install/install_generator.rb in rails-backbone-0.9.10 vs lib/generators/backbone/install/install_generator.rb in rails-backbone-1.2.0
- old
+ new
@@ -11,17 +11,39 @@
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"
+ # for JavaScript application.js manifest:
+ if File.exist? "#{Rails.root}/app/assets/javascripts/application.js"
+ #add backbone.js files above the require_tree if present
+ if File.readlines("#{Rails.root}/app/assets/javascripts/application.js").grep(/require_tree/).any?
+ 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
+ else
+ append_to_file "app/assets/javascripts/application.js" do
+ "//= require underscore\n//= require backbone\n//= require backbone_rails_sync\n//= require backbone_datalink\n//= require backbone/#{application_name.underscore}\n"
+ end
+ end
+ # ...or for CoffeeScript application.js.coffee manifest:
+ elsif File.exist? "#{Rails.root}/app/assets/javascripts/application.js.coffee"
+ #add backbone.js files above the require_tree if present
+ if File.readlines("#{Rails.root}/app/assets/javascripts/application.js.coffee").grep(/require_tree/).any?
+ inject_into_file "app/assets/javascripts/application.js.coffee", before: '#= require_tree .' do
+ "\n#= require underscore\n#= require backbone\n#= require backbone_rails_sync\n#= require backbone_datalink\n#= require backbone/#{application_name.underscore}\n"
+ end
+ else
+ append_to_file "app/assets/javascripts/application.js.coffee" do
+ "\n#= require underscore\n#= require backbone\n#= require backbone_rails_sync\n#= require backbone_datalink\n#= require backbone/#{application_name.underscore}\n"
+ end
+ end
end
end
def create_dir_layout
%W{routers models views templates}.each do |dir|
- empty_directory "app/assets/javascripts/backbone/#{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