rubocop_method_order 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ab19c825958da68b876b86e287411591d1656885ad6add3df83d6893e586cc0f
4
- data.tar.gz: 276d8f2e12003d75b283312aad1f1cc7a8e84166f8cf5332d9c537b95f77cdeb
3
+ metadata.gz: 3a11e352cb4082399b5874ee8e3cd5832ec63767bce1fecf763623fcb007239b
4
+ data.tar.gz: 7d79c93d3f9fa79c4a68ab6ce6ebacb98e1f7a44dc018b5539d4e335381f3f01
5
5
  SHA512:
6
- metadata.gz: 55fd84404e00fc9bb72cad2fe6bc6a93d1316df805f0cea41947fb02c05ee56c6db941cf07c6694379a929b03ce26515d64ae66275b78defff1359821071e5c5
7
- data.tar.gz: 9e2964b8653047536814e91c514dfb398fcd2c7329725a2eedf143b9f7cd6dc411bf27898e923398a2f6ef802582620a4a091e8c88f1c4f3c6081706e8224f9f
6
+ metadata.gz: d9dbbc9ff80535bf34c0b87ff1f20105f843647d9b8c668386a8d57f03971f921eb3c1d487127e45c9eb9e265e0f369940bf79397679032a100eb8c4a4233454
7
+ data.tar.gz: d5ed4b360456386c23e88bdb5ffae8b5b7eb445b183f5a97f9240cb5fa31a4fcd251538a537e5fdb477deab27d8d111f85b20e1112e263686e722c4471527770
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -5,11 +5,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ### Fixed
9
+
10
+ * Autocorrect of method order would not replace all incorrectly ordered nodes in
11
+ certain combinations.
12
+
8
13
  ## [0.1.0] - 2018-03-21
9
14
 
10
15
  ### Added
11
16
 
12
17
  * Initial version of the extension.
13
18
 
14
- [unreleased]: https://github.com/CoffeeAndCode/rubocop_method_order
19
+ [unreleased]: https://github.com/CoffeeAndCode/rubocop_method_order/compare/v0.2.0...HEAD
20
+ [0.2.0]: https://github.com/CoffeeAndCode/rubocop_method_order/compare/v0.1.0...v0.2.0
15
21
  [0.1.0]: https://github.com/CoffeeAndCode/rubocop_method_order/releases/tag/v0.1.0
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rubocop_method_order (0.1.0)
4
+ rubocop_method_order (0.2.0)
5
5
  rubocop (~> 0.53)
6
6
 
7
7
  GEM
@@ -106,23 +106,28 @@ module RuboCop
106
106
  MSG = 'Methods should be sorted in alphabetical order within their section' \
107
107
  ' of the code. Method `%<method>s` should come before `%<previous_method>s`.'
108
108
 
109
- def autocorrect(node)
110
- return if @autocorrect_replacements[node].nil?
111
-
109
+ def autocorrect(_node) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
112
110
  lambda do |corrector|
113
- @autocorrect_replacements[node].each do |node_to_move, node_to_replace|
114
- next if @autocorrected_nodes.include?(node_to_move)
115
-
116
- @autocorrected_nodes << node_to_move
117
- node_source = range_with_method_comments(node_to_move).source
118
- replacement_range = range_with_method_comments(node_to_replace)
119
- corrector.replace(replacement_range, node_source)
111
+ @method_collector.nodes_by_scope.values.each do |method_collection|
112
+ next if @autocorrected_method_collections.include?(method_collection)
113
+
114
+ @autocorrected_method_collections << method_collection
115
+ method_collection.replacements.values.each do |replacement_collection|
116
+ replacement_collection.each do |node_to_move, node_to_replace|
117
+ next if @autocorrected_nodes.include?(node_to_move)
118
+
119
+ @autocorrected_nodes << node_to_move
120
+ node_source = range_with_method_comments(node_to_move).source
121
+ replacement_range = range_with_method_comments(node_to_replace)
122
+ corrector.replace(replacement_range, node_source)
123
+ end
124
+ end
120
125
  end
121
126
  end
122
127
  end
123
128
 
124
129
  def investigate(_processed_source)
125
- @autocorrect_replacements = {}
130
+ @autocorrected_method_collections = []
126
131
  @autocorrected_nodes = []
127
132
  @method_collector = RuboCopMethodOrder::MethodCollector.new(
128
133
  should_skip_method: ->(node) { !cop_enabled_for_node?(node) }
@@ -173,7 +178,6 @@ module RuboCop
173
178
 
174
179
  def check_nodes
175
180
  @method_collector.nodes_by_scope.values.each do |method_collection|
176
- @autocorrect_replacements.merge!(method_collection.replacements)
177
181
  method_collection.offenses.each do |offense|
178
182
  add_offense(offense[:node], location: :expression, message: message(
179
183
  offense[:node].method_name,
@@ -10,7 +10,7 @@ module RuboCopMethodOrder
10
10
  # Contains individual version parts for this gem.
11
11
  module VERSION
12
12
  MAJOR = 0
13
- MINOR = 1
13
+ MINOR = 2
14
14
  PATCH = 0
15
15
  PRE = nil
16
16
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop_method_order
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Knapp
@@ -34,7 +34,7 @@ cert_chain:
34
34
  XxvXYAfIUSbb6/CHtemZT4zsEprRuk8eADIYUTMyAt9d2roTcsRKgq20m+PZO+b+
35
35
  DVnSbPSTRxaM+9Hds4CAzdoo5hIiLyvSXSqSRGgQEMT0yiFdK+6kRw==
36
36
  -----END CERTIFICATE-----
37
- date: 2018-03-21 00:00:00.000000000 Z
37
+ date: 2018-03-22 00:00:00.000000000 Z
38
38
  dependencies:
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: rubocop
metadata.gz.sig CHANGED
Binary file