- A
- D
- S
- W
Constants
| RAILS_GEM_ROOT | = | File.expand_path("../../../..", __dir__) + "/" |
Attributes
| [RW] | gem_name | Name of gem where method is deprecated |
| [W] | silenced | Whether to print a message (silent mode) |
Instance Public methods
allow(allowed_warnings = :all, if: true, &block) Link
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.
deprecator = ActiveSupport::Deprecation.new
deprecator.disallowed_behavior = :raise
deprecator.disallowed_warnings = [
"something broke"
]
deprecator.warn('something broke!')
# => ActiveSupport::DeprecationException
deprecator.allow ['something broke'] do
deprecator.warn('something broke!')
end
# => nil
deprecator.allow ['something broke'], if: Rails.env.production? do
deprecator.warn('something broke!')
end
# => ActiveSupport::DeprecationException for dev/test, nil for production
Source: show
# File activesupport/lib/active_support/deprecation/reporting.rb, line 89 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) Link
Source: show
# File activesupport/lib/active_support/deprecation/reporting.rb, line 99 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
silence(&block) Link
Silence deprecation warnings within the block.
deprecator = ActiveSupport::Deprecation.new
deprecator.warn('something broke!')
# => "DEPRECATION WARNING: something broke! (called from your_code.rb:1)"
deprecator.silence do
deprecator.warn('something broke!')
end
# => nil
Source: show
# File activesupport/lib/active_support/deprecation/reporting.rb, line 41 def silence(&block) begin_silence block.call ensure end_silence end
silenced() Link
Source: show
# File activesupport/lib/active_support/deprecation/reporting.rb, line 56 def silenced @silenced || @silence_counter.value.nonzero? end
warn(message = nil, callstack = nil) Link
Outputs a deprecation warning to the output configured by ActiveSupport::Deprecation#behavior.
ActiveSupport::Deprecation.new.warn('something broke!')
# => "DEPRECATION WARNING: something broke! (called from your_code.rb:1)"
Source: show
# File activesupport/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 |full_message| if deprecation_disallowed?(message) disallowed_behavior.each { |b| b.call(full_message, callstack, self) } else behavior.each { |b| b.call(full_message, callstack, self) } end end end