rails 4.2: allow bootup

refs #CNVS-26056

Change-Id: I4a4d91c8f96a9d86646bdd14ba9ed75e365a9764
Reviewed-on: https://gerrit.instructure.com/69227
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
This commit is contained in:
James Williams 2015-12-18 07:15:07 -07:00
parent cb86de310d
commit c0ac1dfcdd
8 changed files with 15 additions and 14 deletions

View File

@ -12,18 +12,18 @@ else
gem 'protected_attributes', '1.0.8' gem 'protected_attributes', '1.0.8'
gem 'rails-observers', '0.1.2' gem 'rails-observers', '0.1.2'
gem 'tzinfo', '1.2.2' gem 'tzinfo', '1.2.2'
gem 'oj_mimic_json' gem 'oj_mimic_json', require: false
gem 'activesupport-json_encoder', '1.1.0' gem 'activesupport-json_encoder', '1.1.0'
end end
gem 'encrypted_cookie_store-instructure', '1.1.11', require: 'encrypted_cookie_store' gem 'encrypted_cookie_store-instructure', '1.1.12', require: 'encrypted_cookie_store'
gem 'active_model_serializers', '0.9.0alpha1', gem 'active_model_serializers', '0.9.0alpha1',
github: 'rails-api/active_model_serializers', ref: '61882e1e4127facfe92e49057aec71edbe981829' github: 'rails-api/active_model_serializers', ref: '61882e1e4127facfe92e49057aec71edbe981829'
gem 'authlogic', '3.4.2' gem 'authlogic', '3.4.6'
gem 'active_model-better_errors', '1.6.7', require: 'active_model/better_errors' gem 'active_model-better_errors', '1.6.7', require: 'active_model/better_errors'
gem 'dynamic_form', '1.1.4', require: false gem 'dynamic_form', '1.1.4', require: false
gem 'rails-patch-json-encode', '0.0.1' gem 'rails-patch-json-encode', '0.0.1'
gem 'switchman', '1.3.13' gem 'switchman', '1.3.14'
gem 'folio-pagination', '0.0.9', require: 'folio/rails' gem 'folio-pagination', '0.0.9', require: 'folio/rails'
# for folio, see the folio README # for folio, see the folio README
gem 'will_paginate', '3.0.7', require: false gem 'will_paginate', '3.0.7', require: false
@ -55,7 +55,7 @@ gem 'i18nliner', '0.0.12'
gem 'icalendar', '1.5.4', require: false gem 'icalendar', '1.5.4', require: false
gem 'ims-lti', '2.0.0.beta.33' gem 'ims-lti', '2.0.0.beta.33'
gem 'json', '1.8.2' gem 'json', '1.8.2'
gem 'oj', '2.5.5' gem 'oj', '2.14.1'
gem 'jwt', '1.2.1', require: false gem 'jwt', '1.2.1', require: false
gem 'json-jwt', '1.5.1', require: false gem 'json-jwt', '1.5.1', require: false
gem 'twilio-ruby', '4.2.1' gem 'twilio-ruby', '4.2.1'
@ -92,7 +92,7 @@ gem 'rubycas-client', '2.3.9', require: false
gem 'rubyzip', '1.1.1', require: 'zip' gem 'rubyzip', '1.1.1', require: 'zip'
gem 'safe_yaml', '1.0.4', require: false gem 'safe_yaml', '1.0.4', require: false
gem 'sanitize', '2.0.6', require: false gem 'sanitize', '2.0.6', require: false
gem 'shackles', '1.0.7' gem 'shackles', '1.0.10'
gem 'useragent', '0.10.0', require: false gem 'useragent', '0.10.0', require: false

View File

@ -29,7 +29,7 @@ group :test do
gem 'childprocess', '0.5.0', require: false gem 'childprocess', '0.5.0', require: false
gem 'websocket', '1.0.7', require: false gem 'websocket', '1.0.7', require: false
gem 'selinimum', '0.0.1', require: false, path: 'gems/selinimum' gem 'selinimum', '0.0.1', require: false, path: 'gems/selinimum'
gem 'test_after_commit', '0.4.0' gem 'test_after_commit', '0.4.2'
gem 'test-unit', '~> 3.0', require: false, platform: :ruby_22 gem 'test-unit', '~> 3.0', require: false, platform: :ruby_22
gem 'webmock', '1.22.3', require: false gem 'webmock', '1.22.3', require: false
gem 'addressable', '2.3.8', require: false gem 'addressable', '2.3.8', require: false

View File

@ -192,7 +192,7 @@ module CanvasRails
class ExceptionsApp class ExceptionsApp
def call(env) def call(env)
@app_controller ||= ActionDispatch::Routing::RouteSet::Dispatcher.new.controller(:controller => 'application') @app_controller ||= ActionDispatch::Routing::RouteSet::Dispatcher.new({}).controller(:controller => 'application')
@app_controller.action('rescue_action_dispatch_exception').call(env) @app_controller.action('rescue_action_dispatch_exception').call(env)
end end
end end

View File

@ -5,7 +5,7 @@ class ActiveRecord::Base
def write_attribute(attr_name, *args) def write_attribute(attr_name, *args)
value = super value = super
value.is_a?(ActiveRecord::AttributeMethods::Serialization::Attribute) ? value.value : value (CANVAS_RAILS4_0 && value.is_a?(ActiveRecord::AttributeMethods::Serialization::Attribute)) ? value.value : value
end end
class << self class << self

View File

@ -21,4 +21,7 @@ if CANVAS_RAILS4_0
end end
end end
end end
else
require 'json/jwt'
require 'oj_mimic_json' # have to load after json/jwt or else the oj_mimic_json will make it never load
end end

View File

@ -94,9 +94,7 @@ Rails.application.config.to_prepare do
# the default shard was already loaded, but didn't deserialize it # the default shard was already loaded, but didn't deserialize it
if default.is_a?(self) && default.instance_variable_get(:@attributes)['settings'].is_a?(String) if default.is_a?(self) && default.instance_variable_get(:@attributes)['settings'].is_a?(String)
settings = ActiveRecord::AttributeMethods::Serialization::Attribute.new(serialized_attributes['settings'], settings = serialized_attributes['settings'].load(default.read_attribute('settings'))
default.instance_variable_get(:@attributes)['settings'],
:serialized).unserialized_value
default.settings = settings default.settings = settings
end end

View File

@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
spec.require_paths = ['lib'] spec.require_paths = ['lib']
spec.license = 'AGPL' spec.license = 'AGPL'
spec.add_dependency 'activerecord', '>= 3.2', '< 4.2' spec.add_dependency 'activerecord', '>= 3.2', '< 4.3'
spec.add_dependency 'pg', '~> 0.17' spec.add_dependency 'pg', '~> 0.17'
spec.add_development_dependency 'bundler', '~> 1.5' spec.add_development_dependency 'bundler', '~> 1.5'

View File

@ -52,7 +52,7 @@ module ModelCache
options[:type] ||= :instance options[:type] ||= :instance
# add the :id lookup for the target class # add the :id lookup for the target class
target_klass = reflections[method.to_sym].klass target_klass = reflections[CANVAS_RAILS4_0 ? method.to_sym : method.to_s].klass
unless ModelCache.keys[target_klass.name].include?(options[:key_lookup]) unless ModelCache.keys[target_klass.name].include?(options[:key_lookup])
target_klass.include(ModelCache) unless target_klass.included_modules.include?(ModelCache) target_klass.include(ModelCache) unless target_klass.included_modules.include?(ModelCache)
ModelCache.keys[target_klass.name] << options[:key_lookup] ModelCache.keys[target_klass.name] << options[:key_lookup]