From 8741052ba25722283ea057f6f022f16b1931ce3e Mon Sep 17 00:00:00 2001 From: Kasper Timm Hansen Date: Sat, 28 Jul 2018 16:17:56 +0200 Subject: Don't expose configuration for a test. Clean up some concepts in the code while we're here. --- activerecord/lib/active_record/log_subscriber.rb | 30 +++++++----------------- 1 file changed, 9 insertions(+), 21 deletions(-) (limited to 'activerecord/lib/active_record/log_subscriber.rb') diff --git a/activerecord/lib/active_record/log_subscriber.rb b/activerecord/lib/active_record/log_subscriber.rb index 51ae1fdb45..1ae6840921 100644 --- a/activerecord/lib/active_record/log_subscriber.rb +++ b/activerecord/lib/active_record/log_subscriber.rb @@ -100,33 +100,21 @@ module ActiveRecord end def log_query_source - line = extract_callstack(caller_locations) + location = extract_query_source_location(caller_locations) - if line - source_line, line_number = line.path, line.lineno - if defined?(::Rails.root) - app_root = "#{::Rails.root}/" - source_line = source_line.sub(app_root, "") - end + if location + source = "#{location.path}:#{location.lineno}" + source = source.sub("#{::Rails.root}/", "") if defined?(::Rails.root) - logger.debug(" ↳ #{ source_line }:#{ line_number }") + logger.debug(" ↳ #{source}") end end - def extract_callstack(callstack) - callstack.find do |frame| - frame.absolute_path && !ignored_callstack(frame.absolute_path) - end - end - - RAILS_GEM_ROOT = File.expand_path("../../..", __dir__) + "/" + RAILS_GEM_ROOT = File.expand_path("../../..", __dir__) + "/" + PATHS_TO_IGNORE = /\A(#{RAILS_GEM_ROOT}|#{RbConfig::CONFIG["rubylibdir"]})/ - class_attribute :ignored_callstack_paths, default: [RAILS_GEM_ROOT, RbConfig::CONFIG["rubylibdir"]] - - def ignored_callstack(path) - ignored_callstack_paths.any? do |ignored_path| - path.start_with?(ignored_path) - end + def extract_query_source_location(locations) + locations.find { |line| line.absolute_path && !line.absolute_path.match?(PATHS_TO_IGNORE) } end end end -- cgit v1.2.3