Module: ActiveSupport::Deprecation::Reporting
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Included In:
| |
Defined in: | activesupport/lib/active_support/deprecation/reporting.rb |
Constant Summary
-
RAILS_GEM_ROOT =
# File 'activesupport/lib/active_support/deprecation/reporting.rb', line 150File. ("../../../..", __dir__) + "/"
Instance Attribute Summary
-
#gem_name
rw
Name of gem where method is deprecated.
- #silenced rw
-
#silenced=(value)
rw
Whether to print a message (silent mode).
Instance Method Summary
-
#allow(allowed_warnings = :all, if: true, &block)
Allow previously disallowed deprecation warnings within the block.
- #deprecation_warning(deprecated_method_name, message = nil, caller_backtrace = nil)
-
#silence(&block)
Silence deprecation warnings within the block.
-
#warn(message = nil, callstack = nil)
Outputs a deprecation warning to the output configured by
ActiveSupport::Deprecation.behavior
.
Instance Attribute Details
#gem_name (rw)
Name of gem where method is deprecated
# File 'activesupport/lib/active_support/deprecation/reporting.rb', line 11
attr_accessor :gem_name
#silenced (rw)
[ GitHub ]# File 'activesupport/lib/active_support/deprecation/reporting.rb', line 82
def silenced @silenced || @silenced_thread.value end
#silenced=(value) (rw)
Whether to print a message (silent mode)
# File 'activesupport/lib/active_support/deprecation/reporting.rb', line 9
attr_writer :silenced
Instance Method Details
#allow(allowed_warnings = :all, if: true, &block)
Allow previously disallowed deprecation warnings within the block. allowed_warnings
can be an array containing strings, symbols, or regular expressions. (Symbols are treated as strings). These are compared against the text of deprecation warning messages generated within the block. Matching warnings will be exempt from the rules set by ActiveSupport::Deprecation.disallowed_warnings
The optional if:
argument accepts a truthy/falsy value or an object that responds to .call
. If truthy, then matching warnings will be allowed. If falsey then the method yields to the block without allowing the warning.
ActiveSupport::Deprecation.disallowed_behavior = :raise
ActiveSupport::Deprecation.disallowed_warnings = [
"something broke"
]
ActiveSupport::Deprecation.warn('something broke!')
# => ActiveSupport::DeprecationException
ActiveSupport::Deprecation.allow ['something broke'] do
ActiveSupport::Deprecation.warn('something broke!')
end
# => nil
ActiveSupport::Deprecation.allow ['something broke'], if: Rails.env.production? do
ActiveSupport::Deprecation.warn('something broke!')
end
# => ActiveSupport::DeprecationException for dev/test, nil for production
# File 'activesupport/lib/active_support/deprecation/reporting.rb', line 72
def allow(allowed_warnings = :all, if: true, &block) conditional = binding.local_variable_get(:if) conditional = conditional.call if conditional.respond_to?(:call) if conditional @explicitly_allowed_warnings.bind(allowed_warnings, &block) else yield end end
#deprecation_warning(deprecated_method_name, message = nil, caller_backtrace = nil)
[ GitHub ]# File 'activesupport/lib/active_support/deprecation/reporting.rb', line 86
def deprecation_warning(deprecated_method_name, = nil, caller_backtrace = nil) caller_backtrace ||= caller_locations(2) deprecated_method_warning(deprecated_method_name, ).tap do |msg| warn(msg, caller_backtrace) end end
#silence(&block)
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
# File 'activesupport/lib/active_support/deprecation/reporting.rb', line 40
def silence(&block) @silenced_thread.bind(true, &block) end
#warn(message = nil, callstack = nil)
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)"
# File 'activesupport/lib/active_support/deprecation/reporting.rb', line 18
def warn( = nil, callstack = nil) return if silenced callstack ||= caller_locations(2) (callstack, ).tap do |m| if deprecation_disallowed?( ) disallowed_behavior.each { |b| b.call(m, callstack, deprecation_horizon, gem_name) } else behavior.each { |b| b.call(m, callstack, deprecation_horizon, gem_name) } end end end