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)