Module: ActiveSupport::Deprecation::Reporting

Included in:
ActiveSupport::Deprecation
Defined in:
lib/active_support/deprecation/reporting.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#gem_nameObject

Name of gem where method is deprecated



11
12
13
# File 'lib/active_support/deprecation/reporting.rb', line 11

def gem_name
  @gem_name
end

#silencedObject

Whether to print a message (silent mode)



9
10
11
# File 'lib/active_support/deprecation/reporting.rb', line 9

def silenced
  @silenced
end

Instance Method Details

#deprecation_warning(deprecated_method_name, message = nil, caller_backtrace = nil) ⇒ Object



43
44
45
46
47
48
# File 'lib/active_support/deprecation/reporting.rb', line 43

def deprecation_warning(deprecated_method_name, message = nil, caller_backtrace = nil)
  caller_backtrace ||= caller_locations(2)
  deprecated_method_warning(deprecated_method_name, message).tap do |msg|
    warn(msg, caller_backtrace)
  end
end

#silenceObject

Silence deprecation warnings within the block.

ActiveSupport::Deprecation.warn('something broke!')
# => "DEPRECATION WARNING: something broke! (called from your_code.rb:1)"

ActiveSupport::Deprecation.silence do
  ActiveSupport::Deprecation.warn('something broke!')
end
# => nil


36
37
38
39
40
41
# File 'lib/active_support/deprecation/reporting.rb', line 36

def silence
  old_silenced, @silenced = @silenced, true
  yield
ensure
  @silenced = old_silenced
end

#warn(message = nil, callstack = nil) ⇒ Object

Outputs a deprecation warning to the output configured by ActiveSupport::Deprecation.behavior.

ActiveSupport::Deprecation.warn('something broke!')
# => "DEPRECATION WARNING: something broke! (called from your_code.rb:1)"


18
19
20
21
22
23
24
25
# File 'lib/active_support/deprecation/reporting.rb', line 18

def warn(message = nil, callstack = nil)
  return if silenced

  callstack ||= caller_locations(2)
  deprecation_message(callstack, message).tap do |m|
    behavior.each { |b| b.call(m, callstack, deprecation_horizon, gem_name) }
  end
end