- A
- C
- E
- G
- I
- L
- P
- R
- V
Add the given source to Gemfile
Example
add_source "http://gems.github.com/"
Just run the capify command in root
Example
capify!
Adds a line inside the Application class for config/application.rb.
If options :env is specified, the line is appended to the corresponding file in config/environments.
# File railties/lib/rails/generators/actions.rb, line 120 def environment(data=nil, options={}, &block) sentinel = /class [a-z_:]+ < Rails::Application/ env_file_sentinel = /::Application\.configure do/ data = block.call if !data && block_given? in_root do if options[:env].nil? inject_into_file 'config/application.rb', "\n #{data}", :after => sentinel, :verbose => false else Array.wrap(options[:env]).each do |env| inject_into_file "config/environments/#{env}.rb", "\n #{data}", :after => env_file_sentinel, :verbose => false end end end end
Adds an entry into Gemfile for the supplied gem. If env is specified, add the gem to the given environment.
Example
gem "rspec", :group => :test gem "technoweenie-restful-authentication", :lib => "restful-authentication", :source => "http://gems.github.com/" gem "rails", "3.0", :git => "git://github.com/rails/rails"
# File railties/lib/rails/generators/actions.rb, line 52 def gem(*args) options = args.extract_options! name, version = args # 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.inspect message << " (#{version})" end message = options[:git] if options[:git] log :gemfile, message options.each do |option, value| parts << ":#{option} => #{value.inspect}" end in_root do str = "gem #{parts.join(", ")}" str = " " + str if @in_group str = "\n" + str append_file "Gemfile", str, :verbose => false end end
Wraps gem entries inside a group.
Example
gem_group :development, :test do gem "rspec-rails" end
# File railties/lib/rails/generators/actions.rb, line 87 def gem_group(*names, &block) name = names.map(&:inspect).join(", ") log :gemfile, "group #{name}" in_root do append_file "Gemfile", "\ngroup #{name} do", :force => true @in_group = true instance_eval(&block) @in_group = false append_file "Gemfile", "\nend\n", :force => true end end
Run a command in git.
Examples
git :init git :add => "this.file that.rb" git :add => "onefile.rb", :rm => "badfile.cxx"
Create a new initializer with the provided code (either in a block or a string).
Examples
initializer("globals.rb") do data = "" ['MY_WORK', 'ADMINS', 'BEST_COMPANY_EVAR'].each do |const| data << "#{const} = :entp\n" end data end initializer("api.rb", "API_KEY = '123456'")
Create a new file in the lib/ directory. Code can be specified in a block or a data string can be given.
Examples
lib("crypto.rb") do "crypted_special_value = '#{rand}--#{Time.now}--#{rand(1337)}--'" end lib("foreign.rb", "# Foreign code is fun")
Install a plugin. You must provide either a Subversion url or Git url.
For a Git-hosted plugin, you can specify a branch and whether it should be added as a submodule instead of cloned.
For a Subversion-hosted plugin you can specify a revision.
Examples
plugin 'restful-authentication', :git => 'git://github.com/technoweenie/restful-authentication.git' plugin 'restful-authentication', :git => 'git://github.com/technoweenie/restful-authentication.git', :branch => 'stable' plugin 'restful-authentication', :git => 'git://github.com/technoweenie/restful-authentication.git', :submodule => true plugin 'restful-authentication', :svn => 'svn://svnhub.com/technoweenie/restful-authentication/trunk' plugin 'restful-authentication', :svn => 'svn://svnhub.com/technoweenie/restful-authentication/trunk', :revision => 1234
# File railties/lib/rails/generators/actions.rb, line 24 def plugin(name, options) log :plugin, name if options[:git] && options[:submodule] options[:git] = "-b #{options[:branch]} #{options[:git]}" if options[:branch] in_root do run "git submodule add #{options[:git]} vendor/plugins/#{name}", :verbose => false end elsif options[:git] || options[:svn] options[:git] = "-b #{options[:branch]} #{options[:git]}" if options[:branch] options[:svn] = "-r #{options[:revision]} #{options[:svn]}" if options[:revision] in_root do run_ruby_script "script/rails plugin install #{options[:svn] || options[:git]}", :verbose => false end else log "! no git or svn provided for #{name}. Skipping..." end end
Runs the supplied rake task
Example
rake("db:migrate") rake("db:migrate", :env => "production") rake("gems:install", :sudo => true)
# File railties/lib/rails/generators/actions.rb, line 255 def rake(command, options={}) log :rake, command env = options[:env] || ENV["RAILS_ENV"] || 'development' sudo = options[:sudo] && RbConfig::CONFIG['host_os'] !~ /mswin|mingw/ ? 'sudo ' : '' in_root { run("#{sudo}#{extify(:rake)} #{command} RAILS_ENV=#{env}", :verbose => false) } end
Create a new Rakefile with the provided code (either in a block or a string).
Examples
rakefile("bootstrap.rake") do project = ask("What is the UNIX name of your project?") <<-TASK namespace :#{project} do task :bootstrap do puts "i like boots!" end end TASK end rakefile("seed.rake", "puts 'im plantin ur seedz'")
Reads the given file at the source root and prints it in the console.
Example
readme "README"
# File railties/lib/rails/generators/actions.rb, line 279 def route(routing_code) log :route, routing_code sentinel = /\.routes\.draw do(?:\s*\|map\|)?\s*$/ in_root do inject_into_file 'config/routes.rb', "\n #{routing_code}\n", { :after => sentinel, :verbose => false } end end
Create a new file in the vendor/ directory. Code can be specified in a block or a data string can be given.
Examples
vendor("sekrit.rb") do sekrit_salt = "#{Time.now}--#{3.years.ago}--#{rand}--" "salt = '#{sekrit_salt}'" end vendor("foreign.rb", "# Foreign code is fun")
Add an extension to the given name based on the platform.
Define log for backwards compatibility. If just one argument is sent, invoke say, otherwise invoke say_status. Differently from say and similarly to say_status, this method respects the quiet? option given.