From 211b10aea6313582e2f837edd297af4aeb33c8dc Mon Sep 17 00:00:00 2001 From: Koichi ITO Date: Tue, 3 Jul 2018 12:11:28 +0900 Subject: Bump RuboCop to 0.58.2 ## Summary RuboCop 0.58.2 was released. https://github.com/rubocop-hq/rubocop/releases/tag/v0.58.2 And rubocop-0-58 channel is available in Code Climate. https://github.com/codeclimate/codeclimate/releases/tag/v0.76.0 https://github.com/codeclimate/codeclimate/commit/38f21f0 In addition, the following changes are made in this PR. - Replace Custom cops with Rails cops - Add jaro_winkler gem to Gemfile.lock ### Replace Custom cops with Rails cops These are compatible replacements. - Replace `CustomCops/AssertNot` cop with `Rails/AssertNot` cop. - Replace `CustomCops/RefuteNot` cop with `Rails/RefuteMethods` cop. With this replacement, it was decided to use cop of RuboCop itself. It removes the code related to CustomCops accordingly. ### Add jaro_winkler gem to Gemfile.lock Since RuboCop 0.57.0 depends on jaro_winkler gem, it has been added to Gemfile.lock. --- ci/custom_cops/lib/custom_cops.rb | 4 -- ci/custom_cops/lib/custom_cops/assert_not.rb | 40 ---------------- ci/custom_cops/lib/custom_cops/refute_not.rb | 71 ---------------------------- 3 files changed, 115 deletions(-) delete mode 100644 ci/custom_cops/lib/custom_cops.rb delete mode 100644 ci/custom_cops/lib/custom_cops/assert_not.rb delete mode 100644 ci/custom_cops/lib/custom_cops/refute_not.rb (limited to 'ci/custom_cops/lib') diff --git a/ci/custom_cops/lib/custom_cops.rb b/ci/custom_cops/lib/custom_cops.rb deleted file mode 100644 index 157b8247e4..0000000000 --- a/ci/custom_cops/lib/custom_cops.rb +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true - -require_relative "custom_cops/refute_not" -require_relative "custom_cops/assert_not" diff --git a/ci/custom_cops/lib/custom_cops/assert_not.rb b/ci/custom_cops/lib/custom_cops/assert_not.rb deleted file mode 100644 index 8b49d3eac2..0000000000 --- a/ci/custom_cops/lib/custom_cops/assert_not.rb +++ /dev/null @@ -1,40 +0,0 @@ -# frozen_string_literal: true - -module CustomCops - # Enforces the use of `assert_not` over `assert !`. - # - # @example - # # bad - # assert !x - # assert ! x - # - # # good - # assert_not x - # - class AssertNot < RuboCop::Cop::Cop - MSG = "Prefer `assert_not` over `assert !`" - - def_node_matcher :offensive?, "(send nil? :assert (send ... :!) ...)" - - def on_send(node) - add_offense(node) if offensive?(node) - end - - def autocorrect(node) - expression = node.loc.expression - - ->(corrector) do - corrector.replace( - expression, - corrected_source(expression.source) - ) - end - end - - private - - def corrected_source(source) - source.gsub(/^assert(\(| ) *! */, "assert_not\\1") - end - end -end diff --git a/ci/custom_cops/lib/custom_cops/refute_not.rb b/ci/custom_cops/lib/custom_cops/refute_not.rb deleted file mode 100644 index 3e89e0fd32..0000000000 --- a/ci/custom_cops/lib/custom_cops/refute_not.rb +++ /dev/null @@ -1,71 +0,0 @@ -# frozen_string_literal: true - -module CustomCops - # Enforces the use of `#assert_not` methods over `#refute` methods. - # - # @example - # # bad - # refute false - # refute_empty [1, 2, 3] - # refute_equal true, false - # - # # good - # assert_not false - # assert_not_empty [1, 2, 3] - # assert_not_equal true, false - # - class RefuteNot < RuboCop::Cop::Cop - MSG = "Prefer `%s` over `%s`" - - CORRECTIONS = { - refute: "assert_not", - refute_empty: "assert_not_empty", - refute_equal: "assert_not_equal", - refute_in_delta: "assert_not_in_delta", - refute_in_epsilon: "assert_not_in_epsilon", - refute_includes: "assert_not_includes", - refute_instance_of: "assert_not_instance_of", - refute_kind_of: "assert_not_kind_of", - refute_nil: "assert_not_nil", - refute_operator: "assert_not_operator", - refute_predicate: "assert_not_predicate", - refute_respond_to: "assert_not_respond_to", - refute_same: "assert_not_same", - refute_match: "assert_no_match" - }.freeze - - OFFENSIVE_METHODS = CORRECTIONS.keys.freeze - - def_node_matcher :offensive?, "(send nil? #offensive_method? ...)" - - def on_send(node) - return unless offensive?(node) - - message = offense_message(node.method_name) - add_offense(node, location: :selector, message: message) - end - - def autocorrect(node) - ->(corrector) do - corrector.replace( - node.loc.selector, - CORRECTIONS[node.method_name] - ) - end - end - - private - - def offensive_method?(method_name) - OFFENSIVE_METHODS.include?(method_name) - end - - def offense_message(method_name) - format( - MSG, - refute_method: method_name, - assert_method: CORRECTIONS[method_name] - ) - end - end -end -- cgit v1.2.3