simplycop 2.3.2 → 2.5.0

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: 2cd8f4d3b21badbb734986a32b7aa1283414acfe91d8f73f12131335a8b52b60
4
- data.tar.gz: d8a6a4c018995bc720ddc50cd026735a26c3ed23e6eebe7b09330be30f3e804b
3
+ metadata.gz: fd09f4e7858d5143a39f3666e79cb20bf1f458720decf82b23149d4f7aba71e1
4
+ data.tar.gz: b35dc71c87ff97229dda37d0daa3e2c1c5f5003b52b4d3c6649bcde166c9bb7c
5
5
  SHA512:
6
- metadata.gz: 480339d5068f0870e62c660559529f879c8eebc33f770a69942f69b2597f2c1364324bc9360e2f53eba86e06a7d80e8cb0d787d700ddd7d4fa1c5b83f7ca5716
7
- data.tar.gz: 1fc5096f3e507f71e3ea1749772c5b866c291109ce10e512a010938ce9bb1f11735e291ef715edb4a843295dd32ddc4de84d9e821121603011d96682fa772db4
6
+ metadata.gz: 006b209f8bf36036bf7a902c7377793c8b73c2d7683ff94dd5d175dd93f94ccef005f9fc40c8cc6e3401c24874f357c83dbaf221097be62f8e1cee7d1bc39d57
7
+ data.tar.gz: 99e00ad5963e97f95041879c72e37e34b1fb7412706d547e90652408337c62143a334dd8a6202dac9ae55c8d2f6d964f0d08ace104ec00fc7276a45183486cd7
@@ -1,6 +1,7 @@
1
1
  require:
2
2
  - './lib/simplycop/custom_cops/timecop_without_block.rb'
3
3
  - './lib/simplycop/custom_cops/dont_print_all_env.rb'
4
+ - './lib/simplycop/custom_cops/no_foreground_indices.rb'
4
5
 
5
6
  AllCops:
6
7
  ExtraDetails: true
@@ -15,3 +16,10 @@ CustomCops/DontPrintAllEnv:
15
16
  Enabled: true
16
17
  Details: >-
17
18
  This cop checks if someone accidentally print all environment variables as they may contain secrets.
19
+
20
+ CustomCops/NoForegroundIndices:
21
+ Enabled: true
22
+ Details: We want to prevent adding Mongoid indices that are not in background, otherwise the collection will lock during indexing.
23
+
24
+ Include:
25
+ - app/models/*
data/.simplycop_lint.yml CHANGED
@@ -212,7 +212,6 @@ Lint/NextWithoutAccumulator:
212
212
  Lint/NoReturnInBeginEndBlocks:
213
213
  Enabled: true
214
214
 
215
- # Overridden to false in Chopin
216
215
  Lint/NonAtomicFileOperation:
217
216
  Enabled: true
218
217
 
@@ -294,7 +293,6 @@ Lint/RequireParentheses:
294
293
  Lint/RequireRangeParentheses:
295
294
  Enabled: true
296
295
 
297
- # Overridden to false in Chopin
298
296
  Lint/RequireRelativeSelfPath:
299
297
  Enabled: true
300
298
 
@@ -25,7 +25,6 @@ Security/CheckForVulnerableCode:
25
25
 
26
26
  # Standard security cops
27
27
 
28
- # Overridden to false in Chopin
29
28
  Security/CompoundHash:
30
29
  Enabled: true
31
30
 
data/.simplycop_style.yml CHANGED
@@ -16,7 +16,6 @@ Style/ArgumentsForwarding:
16
16
  Style/ArrayCoercion:
17
17
  Enabled: true
18
18
 
19
- # Overridden to false in Chopin
20
19
  Style/ArrayIntersect:
21
20
  Enabled: true
22
21
 
@@ -825,7 +824,6 @@ Style/WhileUntilDo:
825
824
  Style/WhileUntilModifier:
826
825
  Enabled: true
827
826
 
828
- # Overridden to false in Chopin
829
827
  Style/WordArray:
830
828
  EnforcedStyle: brackets
831
829
 
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CustomCops
4
+ # This cop checks for the presence of Mongoid indexes that have not been
5
+ # flagged with the flag `background: true`.
6
+ #
7
+ # @example
8
+ # #bad
9
+ # index(reference: 1)
10
+ #
11
+ # #good
12
+ # index({ reference: 1 }, { background: true })
13
+ #
14
+ class NoForegroundIndices < RuboCop::Cop::Cop
15
+ MSG = 'Do not create indices that lack the background flag.'
16
+
17
+ def_node_matcher :model_index?, <<~PATTERN
18
+ (send nil? :index $...)
19
+ PATTERN
20
+
21
+ def_node_matcher :hash?, <<~PATTERN
22
+ (hash $...)
23
+ PATTERN
24
+
25
+ def_node_matcher :background_pair?, <<~PATTERN
26
+ (pair
27
+ (sym :background)
28
+ (:true)
29
+ )
30
+ PATTERN
31
+
32
+ def on_send(node)
33
+ model_index?(node) do |_fields, options|
34
+ add_offense(node, location: :selector) unless background_enabled?(options)
35
+ end
36
+ end
37
+
38
+ private
39
+
40
+ def background_enabled?(hash)
41
+ return false if hash.nil? || !hash?(hash)
42
+
43
+ hash.pairs.any? { |pair| background_pair?(pair) }
44
+ end
45
+ end
46
+ end
@@ -7,5 +7,5 @@
7
7
  #
8
8
 
9
9
  module Simplycop
10
- VERSION = '2.3.2'
10
+ VERSION = '2.5.0'
11
11
  end
data/simplycop.gemspec CHANGED
@@ -21,8 +21,8 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency 'rubocop-ast', '1.32.3'
22
22
  spec.add_dependency 'rubocop-capybara', '2.21.0'
23
23
  spec.add_dependency 'rubocop-factory_bot', '2.26.1'
24
- spec.add_dependency 'rubocop-performance', '1.21.1'
25
- spec.add_dependency 'rubocop-rails', '2.26.1'
24
+ spec.add_dependency 'rubocop-performance', '1.22.1'
25
+ spec.add_dependency 'rubocop-rails', '2.26.2'
26
26
  spec.add_dependency 'rubocop-rspec', '3.0.5'
27
27
  spec.add_dependency 'rubocop-rspec_rails', '2.30.0'
28
28
  spec.add_development_dependency 'bundler', '>= 2.2.15'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simplycop
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.2
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simply Business
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-11 00:00:00.000000000 Z
11
+ date: 2024-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -72,28 +72,28 @@ dependencies:
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 1.21.1
75
+ version: 1.22.1
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 1.21.1
82
+ version: 1.22.1
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rubocop-rails
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 2.26.1
89
+ version: 2.26.2
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 2.26.1
96
+ version: 2.26.2
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rubocop-rspec
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -218,6 +218,7 @@ files:
218
218
  - lib/simplycop/custom_cops/dont_print_all_env.rb
219
219
  - lib/simplycop/custom_cops/instance_eval.rb
220
220
  - lib/simplycop/custom_cops/method_missing.rb
221
+ - lib/simplycop/custom_cops/no_foreground_indices.rb
221
222
  - lib/simplycop/custom_cops/timecop_without_block.rb
222
223
  - lib/simplycop/custom_cops/variable_name_shadowing_method.rb
223
224
  - lib/simplycop/security/check_for_vulnerable_code.rb