module Warning

要約

警告を出力するためのモジュールです。

本モジュールは warn インスタンスメソッドのみで構成されます。しかし、本モジュールは自身を extend するため、.warn メソッドも利用可能です。warn メソッドは Ruby が出力する全ての警告に対して呼び出されます。デフォルトでは全ての警告が $stderr に出力されます。

Warning.warn をオーバーライドする事で Ruby から出力される警告の動作を変更する事ができます。例えばエラーメッセージのフィルタリングや、$stderr 以外に警告を出力といった変更が可能です。Warning.warn をオーバーライドする際は super を呼び出すとデフォルトの動作である $stderr への出力ができます。

目次

特異メソッド
インスタンスメソッド

特異メソッド

warn(*message) -> nil[permalink][rdoc]

引数 message を標準エラー出力 $stderr に出力します。

本メソッドはRubyが出力する全ての警告に対して呼び出されます。そのため本メソッドをオーバーライドすることで Ruby から出力される警告の動作を変更できます。またオーバーライドしたメソッドからは super を呼び出すことで、デフォルトの動作である $stderr への出力ができます。


warn "hoge" # => hoge

module Warning
  # 警告メッセージの末尾に !!! を追加する
  def self.warn(*message)
    super(*message.map { |msg| msg.chomp + "!!!\n" })
  end
end

warn "hoge" # => hoge!!!
[PARAM] message:
出力するオブジェクトを任意個指定します。

[SEE_ALSO] Kernel.#warn, Warning#warn

インスタンスメソッド

warn(*message) -> nil[permalink][rdoc]

引数 message を標準エラー出力 $stderr に出力します。

Kernel.#warnの挙動を変更する際は、このメソッドではなくクラスメソッドであるWarning.warnをオーバーライドする必要があります。

[PARAM] message:
出力するオブジェクトを任意個指定します。

[SEE_ALSO] Kernel.#warn, Warning.warn