Module: ActiveRecord::Dowsing::Util

Defined in:
lib/active_record/dowsing/util.rb

Class Method Summary collapse

Class Method Details

.app_nameObject



11
12
13
14
# File 'lib/active_record/dowsing/util.rb', line 11

def self.app_name
  return unless Rails.application&.initialized? && Rails.configuration.x.activerecord_dowsing.with_app_name
  "##{Rails.application.class.parent_name.downcase}"
end

.append_comment(sql) ⇒ Object



6
7
8
9
# File 'lib/active_record/dowsing/util.rb', line 6

def self.append_comment(sql)
  location = filter_stacktrace(caller).first
  "#{sql} /* #{location}#{app_name} */"
end

.filter_stacktrace(stack) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/active_record/dowsing/util.rb', line 16

def self.filter_stacktrace(stack)
  @cleaner ||= ActiveSupport::BacktraceCleaner.new.tap do |cleaner|
    cleaner.add_filter   { |line| line.remove(Rails.root.to_s) }
    cleaner.add_filter   { |line| line.remove('*') } # Sanitize comment

    cleaner.add_silencer { |line| line =~ %r{activerecord-dowsing/lib} }
    cleaner.add_silencer { |line| line =~ /gems/ }
  end

  @cleaner.clean(stack)
end