Closed skmtpalm closed 6 years ago
こんにちは。 手元でいくらか試してみたのですが、再現することはできませんでした。
ちなみに RuboCop Airbnb を適用せずに、素の RuboCop だけで実行しても同様の現象が発生するでしょうか?以下のように .rubocop.yml から .rubocop_airbnb.yml を外して実行することになります。
inherit_from:
- - .rubocop_airbnb.yml
- .rubocop_todo.yml
早速の返信ありがとうございます! Gemfile の構成は変えずに
inherit_from:
- .rubocop_todo.yml
として継承しないで、該当ファイルのみ実行してみた結果は変わらず Warning が出ました。
しかし、rubocop だけ 0.58.2 にアップデートして、rubocop-airbnb
の 依存も外したら
Warning が出なくなりました!
差分です。
#Gemfile
- gem 'rubocop-airbnb'
+ gem 'rubocop', require: false
#Gemfile.lock
- rubocop (0.57.2)
+ rubocop (0.58.2)
jaro_winkler (~> 1.5.1)
parallel (~> 1.10)
- parser (>= 2.5)
+ parser (>= 2.5, != 2.5.1.1)
powerpack (~> 0.1)
rainbow (>= 2.2.2, < 4.0)
ruby-progressbar (~> 1.7)
unicode-display_width (~> 1.0, >= 1.0.1)
- rubocop-airbnb (1.5.0)
- rubocop (= 0.57.2)
- rubocop-rspec (= 1.27.0)
- rubocop-rspec (1.27.0)
- rubocop (>= 0.56.0)
ruby-graphviz (1.2.3)
それで、もう一度 rubocop-airbnb を外さず、rubocop のみアップデートして、 継承して使ってみたところ怒られなくなりました!
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -203,7 +203,7 @@ GEM
parallel (1.12.1)
paranoia (2.3.1)
activerecord (>= 4.0, < 5.2)
- parser (2.5.1.1)
+ parser (2.5.1.2)
ast (~> 2.4.0)
polyamorous (1.3.1)
activerecord (>= 3.0)
@@ -263,9 +263,8 @@ GEM
method_source
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
- rainbow (2.2.2)
- rake
- rake (12.1.0)
+ rainbow (3.0.0)
+ rake (12.3.1)
ransack (1.8.3)
actionpack (>= 3.0)
activerecord (>= 3.0)
このバージョンで固定されたら 怒られなくなりました 🙏
依存している parser
と rainbow
という gem の問題だったのでしょうか?!
どうして解決したか自分ではわからないのですが、お手間を取らせてしまってすいません!
RuboCop と RuboCop Airbnb のバージョンの組み合わせが良くなかったのかもしれませんね。 もしくは最後に添付されている Gemfile.lock に Parser 2.5.1.1 とありますが、この Parser のバージョンは問題を含んでいるため修正された 2.5.1.2 が即日リリースされたという経緯があり、そちらが何か関与していたのかもしれないです。 いずれにせよ、解決されたようで良かったです ⭐️
parser そういう経緯があったのですね!依存 gemのバージョンの問題に久々に出くわしました。 自分だけでは解決できませんでした。。。大変勉強になりました!ありがとうございました!
Layouts/DefEndAlignment
Cop の挙動について質問させてください! gemruboco-airbnb
を継承して使っているのですが、こちらの設定には特におかしいところがなさそうだったので、こちらで質問させていただきました。https://github.com/airbnb/ruby/tree/master/rubocop-airbnb
<怒られたり怒られなかったりするコード例>
.rubocop.yml
rubocop-airbnb のDefEndAlignement の設定箇所
Cop 対象のコントローラー(some/categories_controller.rb) で
class
の直下にコードを何か挿入すると怒られなくなります。 (例えば、対象のコントローラーのように定数を入れたり、before_action
など入れても怒られない)他の挙動として
ここの挙動と対処の仕方がどうしても理解できず issue を立てさせていただきました。よろしくお願いします!
Gemfile.lock
ruby-version : 2.4.1p111