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?
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"
elsif full?
empty_directory_with_gitkeep "app/assets/javascripts"

View File

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

View File

@@ -112,6 +112,28 @@ class PluginNewGeneratorTest < Rails::Generators::TestCase
assert_file "app/assets/javascripts/application.js"
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
run_generator [destination_root, "--skip-javascript", "--mountable"]
assert_no_file "app/assets/javascripts/application.js"