class Spec::Rails::SpecServer
def cache_classes; false; end}
def cache_classes; false; end}
def daemonize(pid_file = nil)
def daemonize(pid_file = nil) return yield if $DEBUG pid = Process.fork{ Process.setsid Dir.chdir(RAILS_ROOT) trap("SIGINT"){ exit! 0 } trap("SIGTERM"){ exit! 0 } trap("SIGHUP"){ restart_test_server } File.open("/dev/null"){|f| STDERR.reopen f STDIN.reopen f STDOUT.reopen f } run } puts "spec_server launched (PID: %d)" % pid File.open(pid_file,"w"){|f| f.puts pid } if pid_file exit! 0 end
def in_memory_database?
def in_memory_database? ENV["RAILS_ENV"] == "test" and ::ActiveRecord::Base.connection.class.to_s == "ActiveRecord::ConnectionAdapters::SQLite3Adapter" and ::Rails::Configuration.new.database_configuration['test']['database'] == ':memory:' end
def restart_test_server
def restart_test_server puts "restarting" config = ::Config::CONFIG ruby = File::join(config['bindir'], config['ruby_install_name']) + config['EXEEXT'] command_line = [ruby, $0, ARGV].flatten.join(' ') exec(command_line) end
def run
def run trap("USR2") { ::Spec::Rails::SpecServer.restart_test_server } if Signal.list.has_key?("USR2") DRb.start_service("druby://127.0.0.1:8989", ::Spec::Rails::SpecServer.new) DRb.thread.join end
def run(argv, stderr, stdout)
def run(argv, stderr, stdout) $stdout = stdout $stderr = stderr ::Rails::Configuration.extend Module.new {def cache_classes; false; end} ::ActiveSupport.const_defined?(:Dependencies) ? ::ActiveSupport::Dependencies.mechanism = :load : ::Dependencies.mechanism = :load require 'action_controller/dispatcher' dispatcher = ::ActionController::Dispatcher.new($stdout) if ::ActionController::Dispatcher.respond_to?(:reload_application) ::ActionController::Dispatcher.reload_application else dispatcher.reload_application end if Object.const_defined?(:Fixtures) && Fixtures.respond_to?(:reset_cache) Fixtures.reset_cache end unless Object.const_defined?(:ApplicationController) %w(application_controller.rb application.rb).each do |name| require_dependency(name) if File.exists?("#{RAILS_ROOT}/app/controllers/#{name}") end end load "#{RAILS_ROOT}/spec/spec_helper.rb" if in_memory_database? load "#{RAILS_ROOT}/db/schema.rb" ActiveRecord::Migrator.up('db/migrate') end ::Spec::Runner::CommandLine.run( ::Spec::Runner::OptionParser.parse( argv, $stderr, $stdout ) ) if ::ActionController::Dispatcher.respond_to?(:cleanup_application) ::ActionController::Dispatcher.cleanup_application else dispatcher.cleanup_application end end