package_protections 2.1.0 → 2.1.1

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: 7471704e495c4ffe4e849be40a9fad64eed08e3980e9d630300eeae5c8e0d006
4
- data.tar.gz: dbb34a83f3b4f7ed1a3327d36ac2dd5191d17bba0206ebfa06344d056c35b43a
3
+ metadata.gz: f503d714980699ad618258d74bb41489328aedce9e8201bfc7e1a5a086e0bdf9
4
+ data.tar.gz: d3cc2f5d197322d29dff1b794f889bc74b2a79e431e8bf7b70ec1d4e81cfabd4
5
5
  SHA512:
6
- metadata.gz: 77012017f0440763480a9f02ab289254870b9d937ff72cfa8f665331b04195cf01e1724562796d1a74414d38c855fa95710879d6efe105367792a3cf7b1bf60b
7
- data.tar.gz: 48cb93ff9ec6b2b4785587c795fb6571ff55ade4de471c93b38fa3244113b4d4b0ecd6f431d335754ad4d5c6e7d23e3ec6701c71d0fca1328848dcf5a1f27836
6
+ metadata.gz: 6198bc334e103a52eeac5110fab05a21a72b6ed22f33b7ef455b23cb6cbb93fea9ed0b9f2a9ff122ad80ddc587d21fdbb7b7398ed6aef94ad9ad5470666932da
7
+ data.tar.gz: c1fd8d5e56cd37b29304dd467effef8a8cb062ed059ffa434cfff6a4c1300a191612042457139b8715737b7b2a732b44b2d2a0b1c961e934773ae9e4da093544
@@ -128,6 +128,39 @@ module PackageProtections
128
128
  protected_packages.map { |p| [p.name, protection.custom_cop_config(p)] }.to_h
129
129
  end
130
130
  end
131
+
132
+ sig { returns(T::Array[T::Hash[T.untyped, T.untyped]]) }
133
+ def self.rubocop_todo_ymls
134
+ @rubocop_todo_ymls = T.let(@rubocop_todo_ymls, T.nilable(T::Array[T::Hash[T.untyped, T.untyped]]))
135
+ @rubocop_todo_ymls ||= begin
136
+ todo_files = Pathname.glob('**/.rubocop_todo.yml')
137
+ todo_files.map do |todo_file|
138
+ YAML.load_file(todo_file)
139
+ end
140
+ end
141
+ end
142
+
143
+ sig { void }
144
+ def self.bust_rubocop_todo_yml_cache
145
+ @rubocop_todo_ymls = nil
146
+ end
147
+
148
+ sig { params(rule: String).returns(T::Set[String]) }
149
+ def self.exclude_for_rule(rule)
150
+ excludes = T.let(Set.new, T::Set[String])
151
+
152
+ Private.rubocop_todo_ymls.each do |todo_yml|
153
+ config = todo_yml[rule]
154
+ next if config.nil?
155
+
156
+ exclude_list = config['Exclude']
157
+ next if exclude_list.nil?
158
+
159
+ excludes += exclude_list
160
+ end
161
+
162
+ excludes
163
+ end
131
164
  end
132
165
 
133
166
  private_constant :Private
@@ -71,20 +71,7 @@ module PackageProtections
71
71
 
72
72
  sig { void }
73
73
  def self.bust_rubocop_todo_yml_cache
74
- @rubocop_todo_yml = nil
75
- end
76
-
77
- sig { returns(T.untyped) }
78
- def self.rubocop_todo_yml
79
- @rubocop_todo_yml = T.let(@rubocop_todo_yml, T.untyped)
80
- @rubocop_todo_yml ||= begin
81
- todo_file = Pathname.new('.rubocop_todo.yml')
82
- if todo_file.exist?
83
- YAML.load_file(todo_file)
84
- else
85
- {}
86
- end
87
- end
74
+ Private.bust_rubocop_todo_yml_cache
88
75
  end
89
76
 
90
77
  sig do
@@ -93,7 +80,7 @@ module PackageProtections
93
80
  ).returns(T::Array[Offense])
94
81
  end
95
82
  def get_offenses_for_existing_violations(protected_packages)
96
- exclude_list = exclude_for_rule(cop_name)
83
+ exclude_list = Private.exclude_for_rule(cop_name)
97
84
  offenses = []
98
85
 
99
86
  protected_packages.each do |package|
@@ -146,13 +133,5 @@ module PackageProtections
146
133
  )
147
134
  ]
148
135
  end
149
-
150
- private
151
-
152
- sig { params(rule: String).returns(T::Set[String]) }
153
- def exclude_for_rule(rule)
154
- rule_config = RubocopProtectionInterface.rubocop_todo_yml[rule] || {}
155
- Set.new(rule_config['Exclude'] || [])
156
- end
157
136
  end
158
137
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: package_protections
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gusto Engineers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-21 00:00:00.000000000 Z
11
+ date: 2022-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport