Closed ybiquitous closed 6 years ago
フィードバックありがとうございます!
この辺で再帰的に上のディレクトリを見るようにすれば実現できそうですね。
rbenvは.ruby-version
を上のディレクトリに遡って見るようになっていますし、RuboCopも.rubocop.yml
に関しては上のディレクトリを遡って見るようになっているので、この挙動はバグだと思います。
@pocke 返信遅くなってすみません 🙇 これは直接本家にプルリク送ってもいいんでしょうか? それとも、本家にも issue を作った方がいいんでしょうか?
コードを書いて頂けるのであれば、本家にそのままプルリクを送って頂けると非常にありがたいです! コードを書くのが大変そうであれば、本家のほうに英語でIssueを書いていただけるだけでも助かります。。
RuboCopは「PRの際にIssueがないとダメ」というスタイルではないので、気にせずプルリクを送ってしまって問題ないです! 議論が分かれそうなものや自分で実装するのが厳しそうなものはIssueにしてしまったほうが良いと思いますが、今回のようなケースなどでは単にPRを送ってしまって全然問題ないと思いますー
本家にすでに上がっていました。issue は open のままですが、PRは非常に長い議論の末、reject されています。
https://github.com/bbatsov/rubocop/pull/4186 の議論では、 .ruby-version
ファイルのチェックではなく RUBY_VERSION
定数のチェックの方がいいのでは?という意見が発生し(こちらまたはこちら)、最終的には RUBY_VERSION
のアイデアは却下されています。
却下の理由:
/usr/bin/ruby -S rubocop
というエッジケースでは、.ruby-version
と RUBY_VERSION
が異なるから。
Submitted PR bbatsov/rubocop#5326.
4186の議論を全部読む気になれなくて全然読めていなくて申し訳ないです。。
そもそもRUBY_VERSIONを見よう、というのは間違っている(RuboCopはRuntimeのRubyのバージョンによって挙動を変えるべきではない)ので、.ruby-version
をみるので良いと思います。
PRありがとうございます!!
v0.52.1 に取り込まれましたので、クローズします 🎉 😄 https://github.com/bbatsov/rubocop/releases/tag/v0.52.1
@pocke サポートありがとうございます! 🙇 👍
.ruby-version
ファイルがあればTargetRubyVersion
が自動で設定される機能を、大変重宝してます。が、
.ruby-version
ファイルが RuboCop を実行したディレクトリに存在しないと、TargetRubyVersion
が設定されずに困っています。 具体的には、エディタで Ruby ファイルを編集中に RuboCop を走らせているのですが、その際にパースエラーが発生してしまいます。.ruby-version
ファイルがディレクトリに存在しない場合、ディレクトリを遡って見つけて欲しいです。こちらにサンプルプロジェクトを用意しました。
参考
https://github.com/bbatsov/rubocop/blob/f72860cf9f879d8ecef19b30624d777d8cc3bd80/manual/configuration.md#setting-the-target-ruby-version