aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/generators/actions.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2009-11-03 22:02:24 -0200
committerJeremy Kemper <jeremy@bitsweat.net>2009-11-03 16:32:47 -0800
commit3b8e29fe5697d4aec99229abcbd04141d3e53b71 (patch)
treec4b547f53913c41bce024f8371c4267f5c060d2c /railties/lib/rails/generators/actions.rb
parent3fb548cac319207f369f348c5f27d165b65c2f85 (diff)
downloadrails-3b8e29fe5697d4aec99229abcbd04141d3e53b71.tar.gz
rails-3b8e29fe5697d4aec99229abcbd04141d3e53b71.tar.bz2
rails-3b8e29fe5697d4aec99229abcbd04141d3e53b71.zip
Remove --freeze (since Rails will come bundled in all new apps) and update gem action to change Gemfile instead of config.environment.
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
Diffstat (limited to 'railties/lib/rails/generators/actions.rb')
-rw-r--r--railties/lib/rails/generators/actions.rb60
1 files changed, 49 insertions, 11 deletions
diff --git a/railties/lib/rails/generators/actions.rb b/railties/lib/rails/generators/actions.rb
index 9254f8d918..c601c6fb39 100644
--- a/railties/lib/rails/generators/actions.rb
+++ b/railties/lib/rails/generators/actions.rb
@@ -1,4 +1,5 @@
require 'open-uri'
+require 'active_support/deprecation'
module Rails
module Generators
@@ -45,19 +46,56 @@ module Rails
#
# gem "rspec", :env => :test
# gem "technoweenie-restful-authentication", :lib => "restful-authentication", :source => "http://gems.github.com/"
+ # gem "rails", "3.0", :git => "git://github.com/rails/rails"
#
- def gem(name, options={})
- log :gem, name
- env = options.delete(:env)
+ def gem(*args)
+ options = args.extract_options!
+ name, version = args
- gems_code = "config.gem '#{name}'"
+ # Deal with deprecated options
+ { :env => :only, :lib => :require_as }.each do |old, new|
+ next unless options[old]
+ options[new] = options.delete(old)
+ ActiveSupport::Deprecation.warn "#{old.inspect} option in gem is deprecated, use #{new.inspect} instead"
+ end
+
+ # Deal with deprecated source
+ if source = options.delete(:source)
+ ActiveSupport::Deprecation.warn ":source option in gem is deprecated, use add_source method instead"
+ add_source(source)
+ end
+
+ # Set the message to be shown in logs. Uses the git repo if one is given,
+ # otherwise use name (version).
+ parts, message = [ name.inspect ], name
+ if version ||= options.delete(:version)
+ parts << version
+ message << " (#{version})"
+ end
+ message = options[:git] if options[:git]
+
+ log :gemfile, message
+
+ options.each do |option, value|
+ parts << ":#{option} => #{value.inspect}"
+ end
- if options.any?
- opts = options.inject([]) {|result, h| result << [":#{h[0]} => #{h[1].inspect.gsub('"',"'")}"] }.sort.join(", ")
- gems_code << ", #{opts}"
+ in_root do
+ append_file "Gemfile", "gem #{parts.join(", ")}", :verbose => false
end
+ end
+
+ # Add the given source to Gemfile
+ #
+ # ==== Example
+ #
+ # source "http://gems.github.com/"
+ def add_source(source, options={})
+ log :source, source
- environment gems_code, :env => env
+ in_root do
+ prepend_file "Gemfile", "source #{source.inspect}", :verbose => false
+ end
end
# Adds a line inside the Initializer block for config/environment.rb.
@@ -79,6 +117,7 @@ module Rails
end
end
end
+ alias :application :environment
# Run a command in git.
#
@@ -222,9 +261,8 @@ module Rails
#
# freeze!
#
- def freeze!(args = {})
- log :vendor, "rails"
- in_root { run("#{extify(:rake)} rails:freeze:edge", :verbose => false) }
+ def freeze!(args={})
+ ActiveSupport::Deprecation.warn "freeze! is deprecated since your rails app now comes bundled with Rails by default, please check your Gemfile"
end
# Make an entry in Rails routing file conifg/routes.rb