From 539752a54cf3426c98e65136206df9f9553d9e73 Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Mon, 27 Jun 2011 21:54:03 -0300 Subject: Move Coffee generators and templates to Coffee Railtie and create javascript_engine ("js") for apps that remove Coffee gem --- railties/lib/rails/generators.rb | 2 +- railties/lib/rails/generators/js/assets/assets_generator.rb | 13 +++++++++++++ .../lib/rails/generators/js/assets/templates/javascript.js | 2 ++ railties/lib/rails/generators/rails/app/templates/Gemfile | 2 +- .../lib/rails/generators/rails/assets/assets_generator.rb | 11 ++--------- .../generators/rails/assets/templates/javascript.js.coffee | 3 --- 6 files changed, 19 insertions(+), 14 deletions(-) create mode 100644 railties/lib/rails/generators/js/assets/assets_generator.rb create mode 100644 railties/lib/rails/generators/js/assets/templates/javascript.js delete mode 100644 railties/lib/rails/generators/rails/assets/templates/javascript.js.coffee (limited to 'railties/lib/rails') diff --git a/railties/lib/rails/generators.rb b/railties/lib/rails/generators.rb index ea9f023511..fdafc91fcb 100644 --- a/railties/lib/rails/generators.rb +++ b/railties/lib/rails/generators.rb @@ -53,7 +53,7 @@ module Rails :helper => true, :integration_tool => nil, :javascripts => true, - :javascript_engine => nil, + :javascript_engine => :js, :orm => false, :performance_tool => nil, :resource_controller => :controller, diff --git a/railties/lib/rails/generators/js/assets/assets_generator.rb b/railties/lib/rails/generators/js/assets/assets_generator.rb new file mode 100644 index 0000000000..d134a9e392 --- /dev/null +++ b/railties/lib/rails/generators/js/assets/assets_generator.rb @@ -0,0 +1,13 @@ +require "rails/generators/named_base" + +module Js + module Generators + class AssetsGenerator < Rails::Generators::NamedBase + source_root File.expand_path("../templates", __FILE__) + + def copy_javascript + copy_file "javascript.js", File.join('app/assets/javascripts', class_path, "#{file_name}.js") + end + end + end +end diff --git a/railties/lib/rails/generators/js/assets/templates/javascript.js b/railties/lib/rails/generators/js/assets/templates/javascript.js new file mode 100644 index 0000000000..dee720facd --- /dev/null +++ b/railties/lib/rails/generators/js/assets/templates/javascript.js @@ -0,0 +1,2 @@ +// Place all the behaviors and hooks related to the matching controller here. +// All this logic will automatically be available in application.js. diff --git a/railties/lib/rails/generators/rails/app/templates/Gemfile b/railties/lib/rails/generators/rails/app/templates/Gemfile index cd674ddbdd..55d0f29a15 100644 --- a/railties/lib/rails/generators/rails/app/templates/Gemfile +++ b/railties/lib/rails/generators/rails/app/templates/Gemfile @@ -11,7 +11,7 @@ source 'http://rubygems.org' # in production environments by default. group :assets do gem 'sass-rails' - gem 'coffee-script' + gem 'coffee-rails' gem 'uglifier' end diff --git a/railties/lib/rails/generators/rails/assets/assets_generator.rb b/railties/lib/rails/generators/rails/assets/assets_generator.rb index db3422fe83..2e7f25a0b7 100644 --- a/railties/lib/rails/generators/rails/assets/assets_generator.rb +++ b/railties/lib/rails/generators/rails/assets/assets_generator.rb @@ -7,21 +7,14 @@ module Rails class_option :javascript_engine, :desc => "Engine for JavaScripts" class_option :stylesheet_engine, :desc => "Engine for Stylesheets" - def create_javascript_files - return unless options.javascripts? - copy_file "javascript.#{javascript_extension}", - File.join('app/assets/javascripts', class_path, "#{asset_name}.#{javascript_extension}") - end - protected def asset_name file_name end - def javascript_extension - options.javascript_engine.present? ? - "js.#{options.javascript_engine}" : "js" + hook_for :javascript_engine do |javascript_engine| + invoke javascript_engine, [name] if options[:javascripts] end hook_for :stylesheet_engine do |stylesheet_engine| diff --git a/railties/lib/rails/generators/rails/assets/templates/javascript.js.coffee b/railties/lib/rails/generators/rails/assets/templates/javascript.js.coffee deleted file mode 100644 index 761567942f..0000000000 --- a/railties/lib/rails/generators/rails/assets/templates/javascript.js.coffee +++ /dev/null @@ -1,3 +0,0 @@ -# Place all the behaviors and hooks related to the matching controller here. -# All this logic will automatically be available in application.js. -# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/ -- cgit v1.2.3