rubocop-asjer 0.2.0 → 0.3.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: 25ed96434badbe450a9dfbf2187bcdb61b1496038c88d38778b1c01452063626
4
- data.tar.gz: 00e460b51f6d744b2d955224169894b681090bbf310929da3d08154fdf8408a7
3
+ metadata.gz: 421e0eeba6d681b0ee11e88059773f9278c24aa02c30f509e2bd23713ca321e8
4
+ data.tar.gz: fc1298e689e874814629eab4120349f7658fc848719fff602608f92feb81bb0c
5
5
  SHA512:
6
- metadata.gz: 0b1dcd107a8f8e584b64ff24ec45cf800312132a3899fee9a1a45ebc5fc0099ead6db9c33621e98bb48512b28a8451b472a21f3b33a27f70cdf85bff4670edcb
7
- data.tar.gz: 9551023808f2d84f26a60c66118854de32cdaa4bfe7dc46288675bb914f5e9df47749603c872a341afb0fdf1cd7ca7244405c25e77340f48c60f239ea2ecbc0b
6
+ metadata.gz: 5e9d9d5a7d0169b30cafb338aa14c61dacfceca1f423d66892791f51fca3d4f3be8a400cc14a834360cdd3ab5e52153658ff1725922a293bf7bca70d81854c31
7
+ data.tar.gz: 9186614b1209094a659de0a9ec93bc3c5ab7d581db77528977f6ecf4f188350bc9ec32348c356dcb8d1b38e78f82aeb7b4a9f03323eefc5c1c788b5ce6e47ee7
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "0.2.0"
2
+ ".": "0.3.0"
3
3
  }
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.0](https://github.com/asjer/rubocop-asjer/compare/v0.2.0...v0.3.0) (2026-01-03)
4
+
5
+
6
+ ### Features
7
+
8
+ * enhance `Asjer/NoDefaultTranslation` cop with autocorrection for default option usage ([2773334](https://github.com/asjer/rubocop-asjer/commit/27733346af4884edad9d495d4ef9d566d36d4584))
9
+
3
10
  ## [0.2.0](https://github.com/asjer/rubocop-asjer/compare/v0.1.0...v0.2.0) (2025-12-31)
4
11
 
5
12
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RuboCop
4
4
  module Asjer
5
- VERSION = '0.2.0'
5
+ VERSION = '0.3.0'
6
6
  end
7
7
  end
@@ -19,6 +19,9 @@ module RuboCop
19
19
  # I18n.t('some.key')
20
20
  #
21
21
  class NoDefaultTranslation < Base
22
+ extend AutoCorrector
23
+ include RangeHelp
24
+
22
25
  MSG = 'Define translations in locale files instead of using `default:`.'
23
26
 
24
27
  RESTRICT_ON_SEND = %i[t translate].freeze
@@ -30,9 +33,35 @@ module RuboCop
30
33
 
31
34
  def on_send(node)
32
35
  translation_with_default?(node) do |default_pair|
33
- add_offense(default_pair)
36
+ add_offense(default_pair) do |corrector|
37
+ # Skip autocorrection if default: is the only hash option
38
+ next if default_pair.parent.pairs.size == 1
39
+
40
+ corrector.remove(removal_range(default_pair))
41
+ end
34
42
  end
35
43
  end
44
+
45
+ private
46
+
47
+ def removal_range(node)
48
+ pairs = node.parent.pairs
49
+ index = pairs.index(node)
50
+
51
+ last_pair?(index, pairs) ? leading_range(node, pairs[index - 1]) : trailing_range(node, pairs[index + 1])
52
+ end
53
+
54
+ def last_pair?(index, pairs)
55
+ index == pairs.size - 1
56
+ end
57
+
58
+ def leading_range(node, prev_pair)
59
+ range_between(prev_pair.source_range.end_pos, node.source_range.end_pos)
60
+ end
61
+
62
+ def trailing_range(node, next_pair)
63
+ range_between(node.source_range.begin_pos, next_pair.source_range.begin_pos)
64
+ end
36
65
  end
37
66
  end
38
67
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-asjer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Asjer Querido