From 7b2523fca1ef74ba65e473de7feca3a5b02d2bf1 Mon Sep 17 00:00:00 2001 From: Brian Palmer Date: Mon, 8 Sep 2014 15:44:25 -0600 Subject: [PATCH] fix double requiring of application.rb This happens when script/rails is executed via a symlinked canvas directory Change-Id: I64fc408244ead13c3c78580c3b3e72102445df34 Reviewed-on: https://gerrit.instructure.com/40740 Tested-by: Jenkins Reviewed-by: Cody Cutrer Product-Review: Cody Cutrer QA-Review: Cody Cutrer --- config/application.rb | 9 ++++----- script/rails | 9 +++++++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/config/application.rb b/config/application.rb index 904fb6cdb5d..c461a5f9b1d 100644 --- a/config/application.rb +++ b/config/application.rb @@ -87,13 +87,12 @@ module CanvasRails initializer("extend_middleware_stack", after: "load_config_initializers") do |app| app.config.middleware.insert_before(config.session_store, 'LoadAccount') app.config.middleware.insert_before(config.session_store, 'SessionsTimeout') + app.config.middleware.swap('ActionDispatch::RequestId', "RequestContextGenerator") + app.config.middleware.insert_before('ActionDispatch::ParamsParser', 'StatsTiming') + app.config.middleware.insert_before('ActionDispatch::ParamsParser', 'Canvas::RequestThrottle') + app.config.middleware.insert_before('Rack::MethodOverride', 'PreventNonMultipartParse') end - config.middleware.swap('ActionDispatch::RequestId', "RequestContextGenerator") - config.middleware.insert_before('ActionDispatch::ParamsParser', 'StatsTiming') - config.middleware.insert_before('ActionDispatch::ParamsParser', 'Canvas::RequestThrottle') - config.middleware.insert_before('Rack::MethodOverride', 'PreventNonMultipartParse') - config.to_prepare do require_dependency 'canvas/plugins/default_plugins' ActiveSupport::JSON::Encoding.escape_html_entities_in_json = true diff --git a/script/rails b/script/rails index f8da2cffd4d..3c07c1f7706 100755 --- a/script/rails +++ b/script/rails @@ -1,6 +1,11 @@ #!/usr/bin/env ruby # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application. -APP_PATH = File.expand_path('../../config/application', __FILE__) -require File.expand_path('../../config/boot', __FILE__) +# added by instructure: +# resolve any symlinks in the file path, to avoid double-require issues +require 'pathname' +expanded_path = Pathname.new(__FILE__).realpath + +APP_PATH = File.expand_path('../../config/application', expanded_path) +require File.expand_path('../../config/boot', expanded_path) require 'rails/commands'