gl_rubocop 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2cf48112bc9eafd596804f516e47f35112f8fe783c89824927baabe203358c36
4
- data.tar.gz: 1f5b3d7bbdb11915a6afd5aaeca0bed5ea6432d8670161d7e8ff562aa563d1a4
3
+ metadata.gz: cc932e911296ebd58c3e59febe32b734287f3ac302762c807c7f2cf58cc1c3ea
4
+ data.tar.gz: 9e9a20252ffcf744d7c8faf367f53f355e07dfcd9d8cb20f29a7d28401c5fd42
5
5
  SHA512:
6
- metadata.gz: fccd43ad5c6c29f83384b87c1b0bf2b01872ec0a5d311bb30954a4cfa9724f71cd8a96a9efeee76fb807f37f9e08b4db8f066f2c57fed60f5ce6065a9b96bf9a
7
- data.tar.gz: 991618a3e4e97f685a4886ad2f392b813637dc7af86ac8332da4aab6dddd2751ca5648e447c3d96c8434a45fec3126b39a58712f351aad7321e6727d334593c4
6
+ metadata.gz: c1f6f481ca4275167ba6c630eaf558a83bd29cac26f6a777c8354dd0dff798c792f86eaded520dab8df616294cb6c0941477a2343abc4a13bdfa548bb021e7b7
7
+ data.tar.gz: 3ef8ba758032a3623ebfe92fbc3cef16b4736b78e0875051ef1f158131f78bbf5b1cb8933ea12c78d4beb103c86d525e3f4ddd607e19d03cc69ea3bc331290d9
data/default.yml CHANGED
@@ -7,6 +7,7 @@ require:
7
7
  - ./lib/gl_rubocop/gl_cops/interactor_inherits_from_interactor_base.rb
8
8
  - ./lib/gl_rubocop/gl_cops/callback_method_names.rb
9
9
  - ./lib/gl_rubocop/gl_cops/prevent_erb_files.rb
10
+ - ./lib/gl_rubocop/gl_cops/rails_cache.rb
10
11
  - ./lib/gl_rubocop/gl_cops/sidekiq_inherits_from_sidekiq_job.rb
11
12
  - ./lib/gl_rubocop/gl_cops/unique_identifier.rb
12
13
 
@@ -37,6 +38,9 @@ GLCops/CallbackMethodNames:
37
38
  GLCops/PreventErbFiles:
38
39
  Enabled: true
39
40
 
41
+ GLCops/RailsCache:
42
+ Enabled: true
43
+
40
44
  GLCops/SidekiqInheritsFromSidekiqJob:
41
45
  Include:
42
46
  - 'app/**/*_worker.rb'
@@ -0,0 +1,24 @@
1
+ module GLRubocop
2
+ module GLCops
3
+ class RailsCache < RuboCop::Cop::Base
4
+ # This cop ensures that Rails.cache is not directly used.
5
+ # This is to prevent generation of unique key ids (SIG Code Quality Discussion 2024-12-16):
6
+ # https://www.notion.so/givelively/2024-12-16-152eb3d1736e805abe85de1fd96f3599?pvs=4#15eeb3d1736e80ecb82defd5d6b1f0e5
7
+
8
+ MSG = 'Rails.cache should not be used directly'.freeze
9
+
10
+ def_node_matcher :using_rails_cache?, <<~PATTERN
11
+ (send#{' '}
12
+ (send (const nil? :Rails) :cache)
13
+ {:fetch :read :write :delete :exist? :clear}
14
+ ...)
15
+ PATTERN
16
+
17
+ def on_send(node)
18
+ return unless using_rails_cache?(node)
19
+
20
+ add_offense(node)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -4,12 +4,10 @@ module GLRubocop
4
4
  # This cop ensures that view components include a data-test-id attribute.
5
5
  #
6
6
  # Good:
7
- # {data-test-id: 'unique-id'}
7
+ # {data-test-id: "unique-id"}
8
8
  # {data-test-id: @unique_id }
9
- # {'data-test-id': 'unique-id'}
9
+ # {'data-test-id': "unique-id"}
10
10
  # {"data-test-id": "unique-id"}
11
- # {data: {test-id: 'unique-id'}}
12
- # {data: {'test-id': 'unique-id'}}
13
11
  #
14
12
  # Bad:
15
13
  # {data: {testId: "unique-id"}}
@@ -17,7 +15,7 @@ module GLRubocop
17
15
 
18
16
  MSG = 'View components must include a data-test-id attribute'.freeze
19
17
  EMPTY_MSG = 'data-test-id attribute must not be empty'.freeze
20
- UNIQUE_IDENTIFIER = 'test-id'.freeze
18
+ UNIQUE_IDENTIFIER = 'data-test-id'.freeze
21
19
 
22
20
  def on_send(node)
23
21
  return unless file_exists? && valid_method_name?(node)
@@ -44,7 +42,7 @@ module GLRubocop
44
42
 
45
43
  def regex_for_indentifier_and_value
46
44
  key = Regexp.quote(UNIQUE_IDENTIFIER)
47
- /(?:["']?data-#{key}["']?|data:.?\{["']?#{key}["']?):\s*(["']([^"']*)["']|@\w+)/
45
+ /(?:#{key}|["']#{key}["']):\s*(["']([^"']*)["']|@\w+)/
48
46
  end
49
47
 
50
48
  def test_id_value
@@ -1,3 +1,3 @@
1
1
  module GLRubocop
2
- VERSION = '0.2.5'.freeze
2
+ VERSION = '0.2.6'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gl_rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Give Lively
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-01-16 00:00:00.000000000 Z
11
+ date: 2025-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -123,6 +123,7 @@ files:
123
123
  - lib/gl_rubocop/gl_cops/callback_method_names.rb
124
124
  - lib/gl_rubocop/gl_cops/interactor_inherits_from_interactor_base.rb
125
125
  - lib/gl_rubocop/gl_cops/prevent_erb_files.rb
126
+ - lib/gl_rubocop/gl_cops/rails_cache.rb
126
127
  - lib/gl_rubocop/gl_cops/sidekiq_inherits_from_sidekiq_job.rb
127
128
  - lib/gl_rubocop/gl_cops/unique_identifier.rb
128
129
  - lib/gl_rubocop/version.rb