方法
- A
- D
- S
- W
Attributes
| [RW] | gem_name | 方法已弃用时所在的 gem 名称 |
| [W] | silenced | 是否打印消息(静默模式) |
实例公共方法
allow(allowed_warnings = :all, if: true, &block) 链接
在块内允许先前被禁止的弃用警告。allowed_warnings 可以是一个包含字符串、符号或正则表达式的数组。(符号被视为字符串)。这些将与在块内生成的弃用警告消息的文本进行比较。匹配的警告将不受 ActiveSupport::Deprecation#disallowed_warnings 设置的规则约束。
可选的 if: 参数接受一个真/假值或响应 .call 的对象。如果为真,则匹配的警告将被允许。如果为假,则方法将不带允许警告地将控制权交给块。
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
来源: 显示 | 在 GitHub 上
# 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) 链接
来源: 显示 | 在 GitHub 上
# 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) 链接
在块内静默弃用警告。
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
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/deprecation/reporting.rb, line 41 def silence(&block) begin_silence block.call ensure end_silence end
silenced() 链接
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/deprecation/reporting.rb, line 56 def silenced @silenced || @silence_counter.value.nonzero? end
warn(message = nil, callstack = nil) 链接
将弃用警告输出到由 ActiveSupport::Deprecation#behavior 配置的输出。
ActiveSupport::Deprecation.new.warn('something broke!') # => "DEPRECATION WARNING: something broke! (called from your_code.rb:1)"
来源: 显示 | 在 GitHub 上
# 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