forked from rails/jquery-rails
/
install_generator.rb
56 lines (48 loc) · 2.23 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
require 'rails'
if ::Rails.version < "3.1"
module Jquery
module Generators
class InstallGenerator < ::Rails::Generators::Base
desc "This generator installs jQuery #{Jquery::Rails::JQUERY_VERSION}, jQuery-ujs, and (optionally) jQuery UI #{Jquery::Rails::JQUERY_UI_VERSION}"
class_option :ui, :type => :boolean, :default => false, :desc => "Include jQueryUI"
source_root File.expand_path('../../../../../vendor/assets/javascripts', __FILE__)
def remove_prototype
Rails::PROTOTYPE_JS.each do |name|
remove_file "public/javascripts/#{name}.js"
end
end
def copy_jquery
say_status("copying", "jQuery (#{Jquery::Rails::JQUERY_VERSION})", :green)
copy_file "jquery.js", "public/javascripts/jquery.js"
copy_file "jquery.min.js", "public/javascripts/jquery.min.js"
end
def copy_jquery_ui
if options.ui?
say_status("copying", "jQuery UI (#{Jquery::Rails::JQUERY_UI_VERSION})", :green)
copy_file "jquery-ui.js", "public/javascripts/jquery-ui.js"
copy_file "jquery-ui.min.js", "public/javascripts/jquery-ui.min.js"
end
end
def copy_ujs_driver
say_status("copying", "jQuery UJS adapter (#{Jquery::Rails::JQUERY_UJS_VERSION[0..5]})", :green)
remove_file "public/javascripts/rails.js"
copy_file "jquery_ujs.js", "public/javascripts/jquery_ujs.js"
end
end
end
end
else
module Jquery
module Generators
class InstallGenerator < ::Rails::Generators::Base
desc "Just show instructions so people will know what to do when mistakenly using generator for Rails 3.1 apps"
def do_nothing
say_status("deprecated", "You are using Rails 3.1, so this generator is no longer needed. The necessary files are already in your asset pipeline.")
say_status("", "Just add `//= require jquery` and `//= require jquery_ujs` to your app/assets/javascripts/application.js")
say_status("", "If you upgraded your app from Rails 3.0 and still have jquery.js, rails.js, or jquery_ujs.js in your javascripts, be sure to remove them.")
# ok, nothing
end
end
end
end
end