要約
警告を出力するためのモジュールです。
本モジュールは warn インスタンスメソッドのみで構成されます。しかし、本モジュールは自身を extend するため、.warn メソッドも利用可能です。warn メソッドは Ruby が出力する全ての警告に対して呼び出されます。デフォルトでは全ての警告が $stderr に出力されます。
Warning.warn をオーバーライドする事で Ruby から出力される警告の動作を変更する事ができます。例えばエラーメッセージのフィルタリングや、$stderr 以外に警告を出力といった変更が可能です。Warning.warn をオーバーライドする際は super を呼び出すとデフォルトの動作である $stderr への出力ができます。
目次
特異メソッド
self[category] -> bool
[permalink][rdoc][edit]-
category の種類の警告を表示するかどうかのフラグを返します。
- [PARAM] category:
- 警告の種類を指定します。
サポートされている category は以下の通りです。
self[category] = flag
[permalink][rdoc][edit]-
category の警告を表示するかどうかのフラグを設定します。サポートされている category については Warning.[] を参照してください。
- [PARAM] category:
- 警告の種類を指定します。
- [PARAM] flag:
- 真、または偽を指定します。
[SEE_ALSO] Warning.[]
warn(message, category: nil) -> nil
[permalink][rdoc][edit]-
引数 message を標準エラー出力 $stderr に出力します。
本メソッドはRubyが出力する全ての警告に対して呼び出されます。そのため本メソッドをオーバーライドすることで Ruby から出力される警告の動作を変更できます。またオーバーライドしたメソッドからは super を呼び出すことで、デフォルトの動作である $stderr への出力ができます。
module Warning # 警告メッセージに category を表示し、message 末尾に !!! を追加する def self.warn(message, category: nil) super("#{category} warning : #{message.chomp}!!!\n") end end warn("hoge", category: :deprecated) # => deprecated warning : hoge!!!
- [PARAM] message:
- 出力するオブジェクトを指定します。
- [PARAM] category:
- 警告のカテゴリを指定します。サポートされている category については Warning.[] を参照してください。
[SEE_ALSO] Kernel.#warn, Warning#warn
インスタンスメソッド
warn(message, category: nil) -> nil
[permalink][rdoc][edit]-
引数 message を標準エラー出力 $stderr に出力します。
Kernel.#warnの挙動を変更する際は、このメソッドではなくクラスメソッドであるWarning.warnをオーバーライドする必要があります。
- [PARAM] message:
- 出力するオブジェクトを指定します。
- [PARAM] category:
- 警告のカテゴリを指定します。サポートされている category については Warning.[] を参照してください。
[SEE_ALSO] Kernel.#warn, Warning.warn