コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

RubocopのBundler/OrderedGemsは空行やコメント行があると反応しなくなる

rubocopってgemの順番にイチイチつっこんできますよね…みたいな記憶だけがあって実際には言われないな…みたいな話で気づいたメモ、原理までは追えなかったのでとりあえず。

前提

Bundler/OrderedGems が default で enable なので反応する

当該コード:rubocop/ordered_gems.rb at master · rubocop-hq/rubocop

動き

# frozen_string_literal: true

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.5.0'

gem 'jbuilder', '~> 2.5'
gem 'rails', '~> 5.2.2'
gem 'mysql2', '>= 0.4.4', '< 0.6.0'

#後略

みたいなものがあると

$ bundle exec rubocop Gemfile 
Inspecting 1 file
C

Offenses:

Gemfile:10:1: C: Bundler/OrderedGems: Gems should be sorted in an alphabetical order within their section of the Gemfile. Gem mysql2 should appear before rails.
gem 'mysql2', '>= 0.4.4', '< 0.6.0'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

のように反応し、railsの前にしろといわれる。

書き方

空行なしで連なっているものだけ反応するので、空行かコメントを加える。すなわち…

gem 'jbuilder', '~> 2.5'
gem 'rails', '~> 5.2.2'

gem 'mysql2', '>= 0.4.4', '< 0.6.0'

こうすると反応しなくなる

参考