Module: ActiveSupport::Deprecation::Reporting

Included in:
ActionDispatch::Reloader, ActiveSupport::Deprecation
Defined in:
activesupport/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



7
8
9
# File 'activesupport/lib/active_support/deprecation/reporting.rb', line 7

def gem_name
  @gem_name
end

#silencedObject

Whether to print a message (silent mode)



5
6
7
# File 'activesupport/lib/active_support/deprecation/reporting.rb', line 5

def silenced
  @silenced
end

Instance Method Details

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



39
40
41
42
43
44
# File 'activesupport/lib/active_support/deprecation/reporting.rb', line 39

def deprecation_warning(deprecated_method_name, message = nil, caller_backtrace = nil)
  caller_backtrace ||= caller(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


32
33
34
35
36
37
# File 'activesupport/lib/active_support/deprecation/reporting.rb', line 32

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)"


14
15
16
17
18
19
20
21
# File 'activesupport/lib/active_support/deprecation/reporting.rb', line 14

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

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