Closed pocke closed 1 year ago
各Copはコメント内に良いコード例と悪いコード例を持っています。
例 https://github.com/bbatsov/rubocop/blob/fdb936a8408f7f2192f93bf5bc1978e38c314efe/lib/rubocop/cop/style/attr.rb#L8-L15
# This cop checks for uses of Module#attr. # # @example # # bad - creates a single attribute accessor (deprecated in Ruby 1.9) # attr :something, true # attr :one, :two, :three # behaves as attr_reader # # # good # attr_accessor :something # attr_reader :one, :two, :three #
ところが、これらのコードが本当に「良い例」「悪い例」であるかは検査されていません。つまり、「良い例」と示されている例にRuboCopが警告を出さないこと、「悪い例」と示されている例にRuboCopが警告を出すことは保証されていません。
そのため、これらの例が本当に良い例、悪い例になっているかをテストしたいと思っています。
ちょっと考えただけでこの実現はめんどくさそうなことがわかります。
# bad
# good
実現できたら素晴らしいのですが、実装と既存サンプル修正 (たぶん手作業になる) と実行コストを考えると、現状のコードレビューの方で良いかもしれません。 機械的に行えれば確実にミスの混入がなくなるのは確かに旨味なのですが、長年この提案についての動きがないことと、ドキュメント不備は良い例、悪い例に限らない気がするためクローズします。
各Copはコメント内に良いコード例と悪いコード例を持っています。
例 https://github.com/bbatsov/rubocop/blob/fdb936a8408f7f2192f93bf5bc1978e38c314efe/lib/rubocop/cop/style/attr.rb#L8-L15
ところが、これらのコードが本当に「良い例」「悪い例」であるかは検査されていません。つまり、「良い例」と示されている例にRuboCopが警告を出さないこと、「悪い例」と示されている例にRuboCopが警告を出すことは保証されていません。
そのため、これらの例が本当に良い例、悪い例になっているかをテストしたいと思っています。
課題
ちょっと考えただけでこの実現はめんどくさそうなことがわかります。
# bad
,# good
をセパレータとしてexamplesを切れば実現できそう# good
,# bad
の判定、設定の判定を行わなければいけないので、メンテしづらく将来的に負債になるのではないか(ドキュメントの信頼性を担保するにはコストが大きすぎるのではないか)