- A
- C
- E
- G
- I
- L
- Q
- R
- V
Add the given source to Gemfile
If block is given, gem entries in block are wrapped into the source group.
add_source "http://gems.github.com/"
add_source "http://gems.github.com/" do
gem "rspec-rails"
end
# File railties/lib/rails/generators/actions.rb, line 71 def add_source(source, options = {}, &block) log :source, source in_root do if block append_file "Gemfile", "\nsource #{quote(source)} do", force: true @in_group = true instance_eval(&block) @in_group = false append_file "Gemfile", "\nend\n", force: true else prepend_file "Gemfile", "source #{quote(source)}\n", verbose: false end end end
Registers a callback to be executed after bundle and spring binstubs have run.
after_bundle do
git add: '.'
end
Just run the capify command in root
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
.
environment do
"config.action_controller.asset_host = 'cdn.provider.com'"
end
environment(nil, env: "development") do
"config.action_controller.asset_host = 'localhost:3000'"
end
# File railties/lib/rails/generators/actions.rb, line 99 def environment(data = nil, options = {}) sentinel = /class [a-z_:]+ < Rails::Application/i env_file_sentinel = /Rails\.application\.configure do/ data = yield 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(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.
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 15 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 = [ quote(name) ], name.dup if version ||= options.delete(:version) parts << quote(version) message << " (#{version})" end message = options[:git] if options[:git] log :gemfile, message options.each do |option, value| parts << "#{option}: #{quote(value)}" 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.
gem_group :development, :test do
gem "rspec-rails"
end
# File railties/lib/rails/generators/actions.rb, line 47 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
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.
generate(:authenticated, "user session")
Run a command in git.
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).
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.
lib("crypto.rb") do
"crypted_special_value = '#{rand}--#{Time.now}--#{rand(1337)}--'"
end
lib("foreign.rb", "# Foreign code is fun")
Runs the supplied rake task (invoked with 'rails …')
rails("db:migrate")
rails("db:migrate", env: "production")
rails("gems:install", sudo: true)
Runs the supplied rake task (invoked with 'rake …')
rake("db:migrate")
rake("db:migrate", env: "production")
rake("gems:install", sudo: true)
Create a new Rakefile
with the provided code (either in a
block or a string).
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 "Planting seeds"')
Reads the given file at the source root and prints it in the console.
readme "README"
Make an entry in Rails routing file config/routes.rb
route "root 'welcome#index'"
Create a new file in the vendor/
directory. Code can be
specified in a block or a data string can be given.
vendor("sekrit.rb") do
sekrit_salt = "#{Time.now}--#{3.years.ago}--#{rand}--"
"salt = '#{sekrit_salt}'"
end
vendor("foreign.rb", "# Foreign code is fun")
Runs the supplied command using either “rake …” or “rails …” based on the executor parameter provided.
# File railties/lib/rails/generators/actions.rb, line 279 def execute_command(executor, command, options = {}) # :doc: log executor, command env = options[:env] || ENV["RAILS_ENV"] || "development" sudo = options[:sudo] && !Gem.win_platform? ? "sudo " : "" in_root { run("#{sudo}#{extify(executor)} #{command} RAILS_ENV=#{env}", verbose: false) } end
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.
Surround string with single quotes if there is no quotes. Otherwise fall back to double quotes