properly require javascript libraries when generating mountable engine

This commit is contained in:
J. Edward Dewyea
2011-05-30 05:58:39 -04:00
parent 96525d632d
commit baf2a9cb7f
3 changed files with 27 additions and 1 deletions

View File

@@ -118,7 +118,7 @@ task :default => :test
return if options.skip_javascript? return if options.skip_javascript?
if mountable? if mountable?
copy_file "#{app_templates_dir}/app/assets/javascripts/application.js.tt", template "#{app_templates_dir}/app/assets/javascripts/application.js.tt",
"app/assets/javascripts/application.js" "app/assets/javascripts/application.js"
elsif full? elsif full?
empty_directory_with_gitkeep "app/assets/javascripts" empty_directory_with_gitkeep "app/assets/javascripts"

View File

@@ -6,6 +6,10 @@ source "http://rubygems.org"
<%= database_gemfile_entry -%> <%= database_gemfile_entry -%>
<% end -%> <% end -%>
<% if mountable? -%>
<%= gem_for_javascript -%>
<% end -%>
if RUBY_VERSION < '1.9' if RUBY_VERSION < '1.9'
gem "ruby-debug", ">= 0.10.3" gem "ruby-debug", ">= 0.10.3"
end end

View File

@@ -112,6 +112,28 @@ class PluginNewGeneratorTest < Rails::Generators::TestCase
assert_file "app/assets/javascripts/application.js" assert_file "app/assets/javascripts/application.js"
end end
def test_jquery_is_the_default_javascript_library
run_generator [destination_root, "--mountable"]
assert_file "app/assets/javascripts/application.js" do |contents|
assert_match %r{^//= require jquery}, contents
assert_match %r{^//= require jquery_ujs}, contents
end
assert_file 'Gemfile' do |contents|
assert_match(/^gem 'jquery-rails'/, contents)
end
end
def test_other_javascript_libraries
run_generator [destination_root, "--mountable", '-j', 'prototype']
assert_file "app/assets/javascripts/application.js" do |contents|
assert_match %r{^//= require prototype}, contents
assert_match %r{^//= require prototype_ujs}, contents
end
assert_file 'Gemfile' do |contents|
assert_match(/^gem 'prototype-rails'/, contents)
end
end
def test_skip_javascripts def test_skip_javascripts
run_generator [destination_root, "--skip-javascript", "--mountable"] run_generator [destination_root, "--skip-javascript", "--mountable"]
assert_no_file "app/assets/javascripts/application.js" assert_no_file "app/assets/javascripts/application.js"