aboutsummaryrefslogtreecommitdiffstats
path: root/ci/custom_cops/lib
diff options
context:
space:
mode:
authorKoichi ITO <koic.ito@gmail.com>2018-07-03 12:11:28 +0900
committerKoichi ITO <koic.ito@gmail.com>2018-07-26 17:48:07 +0900
commit211b10aea6313582e2f837edd297af4aeb33c8dc (patch)
tree9e5b037b2d9ae2b65182d154fd7426bed3b14a20 /ci/custom_cops/lib
parent91fd679710118482f718ea710710561f1cfb0b70 (diff)
downloadrails-211b10aea6313582e2f837edd297af4aeb33c8dc.tar.gz
rails-211b10aea6313582e2f837edd297af4aeb33c8dc.tar.bz2
rails-211b10aea6313582e2f837edd297af4aeb33c8dc.zip
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.
Diffstat (limited to 'ci/custom_cops/lib')
-rw-r--r--ci/custom_cops/lib/custom_cops.rb4
-rw-r--r--ci/custom_cops/lib/custom_cops/assert_not.rb40
-rw-r--r--ci/custom_cops/lib/custom_cops/refute_not.rb71
3 files changed, 0 insertions, 115 deletions
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 `%<assert_method>s` over `%<refute_method>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