From: Masaaki A. <mas...@gm...> - 2011-09-12 10:56:34
|
青柳です。 >> warnのメッセージの中にcallerの結果も入れた方が便利かなぁと思 >> いました。メッセージがでてもどこで出ているかわからないと直す >> のに時間がかかってしまうので。 > > warningが出てるのを分かりつつ使うということもあると思うので、デフォルトでcallerまで含めるのは > 止めておいた方がいいように思います。 すみません。スタック全部出すと勘違いして返信してしまいました。 考えてみたら、使っている場所だけ分かればいいのですね。 単純に、こんな感じで出せばよいでしょうか? Index: lib/vte/deprecated.rb =================================================================== --- lib/vte/deprecated.rb (リビジョン 4633) +++ lib/vte/deprecated.rb (作業コピー) @@ -9,7 +9,7 @@ def define_deprecated_method(deprecated_method, new_method) if public_method_defined?(new_method) define_method(deprecated_method) do |*args, &block| - warn "'#{deprecated_method}' has been deprecated. Use '#{new_method}'." + warn "#{caller[0]}: '#{deprecated_method}' has been deprecated. Use '#{new_method}'." __send__(new_method, *args, &block) end end @@ -20,7 +20,7 @@ def const_missing(deprecated_const) if new_const = (@@deprecated_const[self] || {})[deprecated_const.to_sym] if new_const = constant_get(new_const) - warn "'#{[name, deprecated_const].join('::')}' has been deprecated. Use '#{new_const}'." + warn "#{caller[0]}: '#{[name, deprecated_const].join('::')}' has been deprecated. Use '#{new_const}'." const_set(deprecated_const, new_const) end end それと、 >> * GNOMEUtilsというよりは、GLib::XXXの中に入れたほうがいい >> かなぁと思いました。 Forwardableに倣って、GLib::Deprecatableとかどうでしょうか? |