Namespace
Methods
A
B
C
E
M
P
R
S
T
U
Instance Public methods
add_to_config(str)
# File railties/test/isolation/abstract_unit.rb, line 218
def add_to_config(str)
  environment = File.read("#{app_path}/config/application.rb")
  if environment =~ /(\n\s*end\s*end\s*)\Z/
    File.open("#{app_path}/config/application.rb", 'w') do |f|
      f.puts $` + "\n#{str}\n" + $1
    end
  end
end
add_to_env_config(env, str)
# File railties/test/isolation/abstract_unit.rb, line 227
def add_to_env_config(env, str)
  environment = File.read("#{app_path}/config/environments/#{env}.rb")
  if environment =~ /(\n\s*end\s*)\Z/
    File.open("#{app_path}/config/environments/#{env}.rb", 'w') do |f|
      f.puts $` + "\n#{str}\n" + $1
    end
  end
end
app_file(path, contents)
# File railties/test/isolation/abstract_unit.rb, line 243
def app_file(path, contents)
  FileUtils.mkdir_p File.dirname("#{app_path}/#{path}")
  File.open("#{app_path}/#{path}", 'w') do |f|
    f.puts contents
  end
end
boot_rails()
# File railties/test/isolation/abstract_unit.rb, line 267
def boot_rails
  require File.expand_path('../../../../load_paths', __FILE__)
end
build_app(options = {})

Build an application by invoking the generator and going through the whole stack.

# File railties/test/isolation/abstract_unit.rb, line 93
def build_app(options = {})
  @prev_rails_env = ENV['RAILS_ENV']
  ENV['RAILS_ENV'] = 'development'

  FileUtils.rm_rf(app_path)
  FileUtils.cp_r(tmp_path('app_template'), app_path)

  # Delete the initializers unless requested
  unless options[:initializers]
    Dir["#{app_path}/config/initializers/*.rb"].each do |initializer|
      File.delete(initializer)
    end
  end

  unless options[:gemfile]
    File.delete"#{app_path}/Gemfile"
  end

  routes = File.read("#{app_path}/config/routes.rb")
  if routes =~ /(\n\s*end\s*)\Z/
    File.open("#{app_path}/config/routes.rb", 'w') do |f|
      f.puts $` + "\nmatch ':controller(/:action(/:id))(.:format)'\n" + $1
    end
  end

  add_to_config 'config.secret_token = "3b7cd727ee24e8444053437c36cc66c4"; config.session_store :cookie_store, :key => "_myapp_session"; config.active_support.deprecation = :log'
end
controller(name, contents)
# File railties/test/isolation/abstract_unit.rb, line 254
def controller(name, contents)
  app_file("app/controllers/#{name}_controller.rb", contents)
end
engine(name)
# File railties/test/isolation/abstract_unit.rb, line 195
def engine(name)
  dir = "#{app_path}/random/#{name}"
  FileUtils.mkdir_p(dir)

  app = File.readlines("#{app_path}/config/application.rb")
  app.insert(2, "$:.unshift(\"#{dir}/lib\")")
  app.insert(3, "require #{name.inspect}")

  File.open("#{app_path}/config/application.rb", 'r+') do |f|
    f.puts app
  end

  Bukkit.new(dir).tap do |bukkit|
    yield bukkit if block_given?
  end
end
make_basic_app()

Make a very basic app, without creating the whole directory structure. This is faster and simpler than the method above.

# File railties/test/isolation/abstract_unit.rb, line 127
def make_basic_app
  require "rails"
  require "action_controller/railtie"

  app = Class.new(Rails::Application)
  app.config.secret_token = "3b7cd727ee24e8444053437c36cc66c4"
  app.config.session_store :cookie_store, :key => "_myapp_session"
  app.config.active_support.deprecation = :log

  yield app if block_given?
  app.initialize!

  app.routes.draw do
    match "/" => "omg#index"
  end

  require 'rack/test'
  extend ::Rack::Test::Methods
end
plugin(name, string = "")
# File railties/test/isolation/abstract_unit.rb, line 181
def plugin(name, string = "")
  dir = "#{app_path}/vendor/plugins/#{name}"
  FileUtils.mkdir_p(dir)

  File.open("#{dir}/init.rb", 'w') do |f|
    f.puts "::#{name.upcase} = 'loaded'"
    f.puts string
  end

  Bukkit.new(dir).tap do |bukkit|
    yield bukkit if block_given?
  end
end
remove_file(path)
# File railties/test/isolation/abstract_unit.rb, line 250
def remove_file(path)
  FileUtils.rm_rf "#{app_path}/#{path}"
end
remove_from_config(str)
# File railties/test/isolation/abstract_unit.rb, line 236
def remove_from_config(str)
  file = "#{app_path}/config/application.rb"
  contents = File.read(file)
  contents.sub!(/#{str}/, "")
  File.open(file, "w+") { |f| f.puts contents }
end
script(script)
# File railties/test/isolation/abstract_unit.rb, line 212
def script(script)
  Dir.chdir(app_path) do
    %x`#{Gem.ruby} #{app_path}/script/rails #{script}`
  end
end
simple_controller()
# File railties/test/isolation/abstract_unit.rb, line 147
def simple_controller
  controller :foo, <<-RUBY
    class FooController < ApplicationController
      def index
        render :text => "foo"
      end
    end
  RUBY

  app_file 'config/routes.rb', <<-RUBY
    AppTemplate::Application.routes.draw do
      match ':controller(/:action)'
    end
  RUBY
end
teardown_app()
# File railties/test/isolation/abstract_unit.rb, line 121
def teardown_app
  ENV['RAILS_ENV'] = @prev_rails_env if @prev_rails_env
end
use_frameworks(arr)
# File railties/test/isolation/abstract_unit.rb, line 258
def use_frameworks(arr)
  to_remove =  [:actionmailer,
                :activemodel,
                :activerecord,
                :activeresource] - arr
  remove_from_config "config.active_record.whitelist_attributes = true" if to_remove.include? :activerecord
  $:.reject! {|path| path =~ %r'/(#{to_remove.join('|')})/' }
end