- A
- C
- E
- G
- I
- L
- P
- R
- V
Add the given source to Gemfile
Example
add_source "http://gems.github.com/"
Alias for environment
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 120: def environment(data=nil, options={}, &block) 121: sentinel = /class [a-z_:]+ < Rails::Application/i 122: env_file_sentinel = /::Application\.configure do/ 123: data = block.call if !data && block_given? 124: 125: in_root do 126: if options[:env].nil? 127: inject_into_file 'config/application.rb', "\n #{data}", :after => sentinel, :verbose => false 128: else 129: Array.wrap(options[:env]).each do |env| 130: inject_into_file "config/environments/#{env}.rb", "\n #{data}", :after => env_file_sentinel, :verbose => false 131: end 132: end 133: end 134: 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 52: def gem(*args) 53: options = args.extract_options! 54: name, version = args 55: 56: # Set the message to be shown in logs. Uses the git repo if one is given, 57: # otherwise use name (version). 58: parts, message = [ name.inspect ], name 59: if version ||= options.delete(:version) 60: parts << version.inspect 61: message << " (#{version})" 62: end 63: message = options[:git] if options[:git] 64: 65: log :gemfile, message 66: 67: options.each do |option, value| 68: parts << ":#{option} => #{value.inspect}" 69: end 70: 71: in_root do 72: str = "gem #{parts.join(", ")}" 73: str = " " + str if @in_group 74: str = "\n" + str 75: append_file "Gemfile", str, :verbose => false 76: end 77: 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 87: def gem_group(*names, &block) 88: name = names.map(&:inspect).join(", ") 89: log :gemfile, "group #{name}" 90: 91: in_root do 92: append_file "Gemfile", "\ngroup #{name} do", :force => true 93: 94: @in_group = true 95: instance_eval(&block) 96: @in_group = false 97: 98: append_file "Gemfile", "\nend\n", :force => true 99: end 100: end
Generate something using a generator from Rails or a plugin. The second parameter is the argument string that is passed to the generator or an Array that is joined.
Example
generate(:authenticated, "user session")
# File railties/lib/rails/generators/actions.rb, line 240 240: def generate(what, *args) 241: log :generate, what 242: argument = args.map {|arg| arg.to_s }.flatten.join(" ") 243: 244: in_root { run_ruby_script("script/rails generate #{what} #{argument}", :verbose => false) } 245: 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 24: def plugin(name, options) 25: log :plugin, name 26: 27: if options[:git] && options[:submodule] 28: options[:git] = "-b #{options[:branch]} #{options[:git]}" if options[:branch] 29: in_root do 30: run "git submodule add #{options[:git]} vendor/plugins/#{name}", :verbose => false 31: end 32: elsif options[:git] || options[:svn] 33: options[:git] = "-b #{options[:branch]} #{options[:git]}" if options[:branch] 34: options[:svn] = "-r #{options[:revision]} #{options[:svn]}" if options[:revision] 35: in_root do 36: run_ruby_script "script/rails plugin install #{options[:svn] || options[:git]}", :verbose => false 37: end 38: else 39: log "! no git or svn provided for #{name}. Skipping..." 40: end 41: 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 255: def rake(command, options={}) 256: log :rake, command 257: env = options[:env] || ENV["RAILS_ENV"] || 'development' 258: sudo = options[:sudo] && RbConfig::CONFIG['host_os'] !~ /mswin|mingw/ ? 'sudo ' : '' 259: in_root { run("#{sudo}#{extify(:rake)} #{command} RAILS_ENV=#{env}", :verbose => false) } 260: 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 279: def route(routing_code) 280: log :route, routing_code 281: sentinel = /\.routes\.draw do(?:\s*\|map\|)?\s*$/ 282: 283: in_root do 284: inject_into_file 'config/routes.rb', "\n #{routing_code}\n", { :after => sentinel, :verbose => false } 285: end 286: 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.