Closed pocke closed 6 years ago
eval 時の FILE, LINE + 1 を強制する cop ってあったっけ? @onk https://twitter.com/onk/status/935350994375868416
Eval族は引数にファイル名、行番号を与えることでスタックトレースのファイル名などをいい感じにすることができます。 https://docs.ruby-lang.org/ja/latest/method/Kernel/m/eval.html https://docs.ruby-lang.org/ja/latest/method/Module/i/module_eval.html これを行っていないとスタックトレースがわかりづらくなってしまうため、ファイル名などを渡すように強制するCopがほしいです。
実装は簡単そうですが、いくつか注意点があります。
eval
class_eval
binding
__LINE__ + 1
__LINE__
https://github.com/bbatsov/rubocop/pull/5173 pull-requested
merged
Eval族は引数にファイル名、行番号を与えることでスタックトレースのファイル名などをいい感じにすることができます。 https://docs.ruby-lang.org/ja/latest/method/Kernel/m/eval.html https://docs.ruby-lang.org/ja/latest/method/Module/i/module_eval.html これを行っていないとスタックトレースがわかりづらくなってしまうため、ファイル名などを渡すように強制するCopがほしいです。
実装は簡単そうですが、いくつか注意点があります。
eval
とclass_eval
では引数が違うeval
はbinding
を受け取るため__LINE__ + 1
, 普通の文字列リテラルなら__LINE__
を渡す必要がありそう