From c1cc2d5186dd80a3d9e744f549fa548c4d3303f4 Mon Sep 17 00:00:00 2001 From: Mike Whittemore Date: Tue, 10 Oct 2023 12:47:03 -0700 Subject: [PATCH] fix: qualify Rails as ::Rails to avoid namespace clashes with other gems, fixes #1413 --- lib/jsonapi-resources.rb | 2 +- .../adapters/join_left_active_record_adapter.rb | 4 ++-- lib/jsonapi/active_relation_resource.rb | 2 +- lib/jsonapi/acts_as_resource_controller.rb | 8 ++++---- lib/jsonapi/configuration.rb | 4 ++-- lib/jsonapi/exceptions.rb | 2 +- lib/jsonapi/resources/railtie.rb | 4 ++-- lib/tasks/check_upgrade.rake | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/jsonapi-resources.rb b/lib/jsonapi-resources.rb index 401d9bbc7..8fd199596 100644 --- a/lib/jsonapi-resources.rb +++ b/lib/jsonapi-resources.rb @@ -9,7 +9,7 @@ require 'jsonapi/cached_response_fragment' require 'jsonapi/response_document' require 'jsonapi/acts_as_resource_controller' -if Rails::VERSION::MAJOR >= 6 +if ::Rails::VERSION::MAJOR >= 6 ActiveSupport.on_load(:action_controller_base) do require 'jsonapi/resource_controller' end diff --git a/lib/jsonapi/active_relation/adapters/join_left_active_record_adapter.rb b/lib/jsonapi/active_relation/adapters/join_left_active_record_adapter.rb index a9a0bb8a0..2f6911188 100644 --- a/lib/jsonapi/active_relation/adapters/join_left_active_record_adapter.rb +++ b/lib/jsonapi/active_relation/adapters/join_left_active_record_adapter.rb @@ -7,7 +7,7 @@ module JoinLeftActiveRecordAdapter # example Post.joins(:comments).joins_left(comments: :author) will join the comments table twice, # once inner and once left in 5.2, but only as inner in earlier versions. def joins_left(*columns) - if Rails::VERSION::MAJOR >= 6 || (Rails::VERSION::MAJOR >= 5 && ActiveRecord::VERSION::MINOR >= 2) + if ::Rails::VERSION::MAJOR >= 6 || (::Rails::VERSION::MAJOR >= 5 && ActiveRecord::VERSION::MINOR >= 2) left_joins(columns) else join_dependency = ActiveRecord::Associations::JoinDependency.new(self, columns, []) @@ -23,4 +23,4 @@ def joins_left(*columns) end end end -end \ No newline at end of file +end diff --git a/lib/jsonapi/active_relation_resource.rb b/lib/jsonapi/active_relation_resource.rb index 581ed1e02..3e4c97a37 100644 --- a/lib/jsonapi/active_relation_resource.rb +++ b/lib/jsonapi/active_relation_resource.rb @@ -772,7 +772,7 @@ def apply_single_sort(records, field, direction, options) # Assumes ActiveRecord's counting. Override if you need a different counting method def count_records(records) - if (Rails::VERSION::MAJOR == 5 && ActiveRecord::VERSION::MINOR >= 1) || Rails::VERSION::MAJOR >= 6 + if (::Rails::VERSION::MAJOR == 5 && ActiveRecord::VERSION::MINOR >= 1) || ::Rails::VERSION::MAJOR >= 6 records.count(:all) else records.count diff --git a/lib/jsonapi/acts_as_resource_controller.rb b/lib/jsonapi/acts_as_resource_controller.rb index e448fa0ea..86b39e6ca 100644 --- a/lib/jsonapi/acts_as_resource_controller.rb +++ b/lib/jsonapi/acts_as_resource_controller.rb @@ -160,7 +160,7 @@ def resource_serializer_klass end def base_url - @base_url ||= "#{request.protocol}#{request.host_with_port}#{Rails.application.config.relative_url_root}" + @base_url ||= "#{request.protocol}#{request.host_with_port}#{::Rails.application.config.relative_url_root}" end def resource_klass_name @@ -286,7 +286,7 @@ def handle_exceptions(e) request.env['action_dispatch.exception'] ||= e internal_server_error = JSONAPI::Exceptions::InternalServerError.new(e) - Rails.logger.error { "Internal Server Error: #{e.message} #{e.backtrace.join("\n")}" } + ::Rails.logger.error { "Internal Server Error: #{e.message} #{e.backtrace.join("\n")}" } errors = internal_server_error.errors end end @@ -298,7 +298,7 @@ def safe_run_callback(callback, error) begin callback.call(error) rescue => e - Rails.logger.error { "Error in error handling callback: #{e.message} #{e.backtrace.join("\n")}" } + ::Rails.logger.error { "Error in error handling callback: #{e.message} #{e.backtrace.join("\n")}" } internal_server_error = JSONAPI::Exceptions::InternalServerError.new(e) return JSONAPI::ErrorsOperationResult.new(internal_server_error.errors[0].code, internal_server_error.errors) end @@ -324,7 +324,7 @@ def on_server_error(*args, &callback_block) if self.respond_to? method send(method, error) else - Rails.logger.warn("#{method} not defined on #{self}, skipping error callback") + ::Rails.logger.warn("#{method} not defined on #{self}, skipping error callback") end end end.compact diff --git a/lib/jsonapi/configuration.rb b/lib/jsonapi/configuration.rb index 6cd5d8e1b..9c8612513 100644 --- a/lib/jsonapi/configuration.rb +++ b/lib/jsonapi/configuration.rb @@ -86,11 +86,11 @@ def initialize # Whether or not to include exception backtraces in JSONAPI error # responses. Defaults to `false` in anything other than development or test. - self.include_backtraces_in_errors = (Rails.env.development? || Rails.env.test?) + self.include_backtraces_in_errors = (::Rails.env.development? || ::Rails.env.test?) # Whether or not to include exception application backtraces in JSONAPI error # responses. Defaults to `false` in anything other than development or test. - self.include_application_backtraces_in_errors = (Rails.env.development? || Rails.env.test?) + self.include_application_backtraces_in_errors = (::Rails.env.development? || ::Rails.env.test?) # List of classes that should not be rescued by the operations processor. # For example, if you use Pundit for authorization, you might diff --git a/lib/jsonapi/exceptions.rb b/lib/jsonapi/exceptions.rb index e917118cf..6fb8b675f 100644 --- a/lib/jsonapi/exceptions.rb +++ b/lib/jsonapi/exceptions.rb @@ -54,7 +54,7 @@ def errors if JSONAPI.configuration.include_application_backtraces_in_errors meta ||= Hash.new meta[:exception] ||= exception.message - meta[:application_backtrace] = exception.backtrace.select{|line| line =~ /#{Rails.root}/} + meta[:application_backtrace] = exception.backtrace.select{|line| line =~ /#{::Rails.root}/} end [create_error_object(code: JSONAPI::INTERNAL_SERVER_ERROR, diff --git a/lib/jsonapi/resources/railtie.rb b/lib/jsonapi/resources/railtie.rb index a2d92c1c5..75387fc82 100644 --- a/lib/jsonapi/resources/railtie.rb +++ b/lib/jsonapi/resources/railtie.rb @@ -1,9 +1,9 @@ module JSONAPI module Resources - class Railtie < Rails::Railtie + class Railtie < ::Rails::Railtie rake_tasks do load 'tasks/check_upgrade.rake' end end end -end \ No newline at end of file +end diff --git a/lib/tasks/check_upgrade.rake b/lib/tasks/check_upgrade.rake index 34ddef4a6..9ddd8b6e2 100644 --- a/lib/tasks/check_upgrade.rake +++ b/lib/tasks/check_upgrade.rake @@ -5,7 +5,7 @@ namespace :jsonapi do namespace :resources do desc 'Checks application for orphaned overrides' task :check_upgrade => :environment do - Rails.application.eager_load! + ::Rails.application.eager_load! resource_klasses = ObjectSpace.each_object(Class).select { |klass| klass < JSONAPI::Resource}