features/support/rails.rb in airbrake-3.0.9 vs features/support/rails.rb in airbrake-3.1.0

- old
+ new

@@ -19,11 +19,13 @@ rails3? || rails_version =~ /^2\.3/ end def rails_version @rails_version ||= begin - if bundler_manages_gems? + if ENV["RAILS_VERSION"] + ENV["RAILS_VERSION"] + elsif bundler_manages_gems? rails_version = open(gemfile_path).read.match(/gem.*rails["'].*["'](.+)["']/)[1] else environment_file = File.join(rails_root, 'config', 'environment.rb') rails_version = `grep RAILS_GEM_VERSION #{environment_file}`.match(/[\d.]+/)[0] end @@ -48,10 +50,14 @@ def rails_finds_generators_in_gems? rails3? || rails_version =~ /^2\./ end + def version_string + ENV['RAILS_VERSION'] || `tail -n 1 SUPPORTED_RAILS_VERSIONS` # use latest version if ENV["RAILS_VERSION"] is undefined + end + def environment_path File.join(rails_root, 'config', 'environment.rb') end def rakefile_path @@ -108,12 +114,13 @@ end def perform_request(uri, environment = 'production') if rails3? request_script = <<-SCRIPT - require 'config/environment' + require File.expand_path('../config/environment', __FILE__) + env = Rack::MockRequest.env_for(#{uri.inspect}) response = RailsRoot::Application.call(env).last if response.is_a?(Array) puts response.join @@ -124,11 +131,11 @@ File.open(File.join(rails_root, 'request.rb'), 'w') { |file| file.write(request_script) } @terminal.cd(rails_root) @terminal.run("ruby -rthread ./script/rails runner -e #{environment} request.rb") elsif rails_uses_rack? request_script = <<-SCRIPT - require 'config/environment' + require File.expand_path('../config/environment', __FILE__) env = Rack::MockRequest.env_for(#{uri.inspect}) app = Rack::Lint.new(ActionController::Dispatcher.new) status, headers, body = app.call(env) @@ -173,9 +180,19 @@ SCRIPT File.open(File.join(rails_root, 'request.rb'), 'w') { |file| file.write(request_script) } @terminal.cd(rails_root) @terminal.run("ruby -rthread ./script/runner -e #{environment} request.rb") end + end + + def monkeypatch_old_version + monkeypatchin= <<-MONKEYPATCHIN + + MissingSourceFile::REGEXPS << [/^cannot load such file -- (.+)$/i, 1] + + MONKEYPATCHIN + + File.open(File.join(rails_root,"config","initializers", 'monkeypatchin.rb'), 'w') { |file| file.write(monkeypatchin) } end end World(RailsHelpers)