packs 0.0.34 → 0.0.35

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: 6a04a13a8a29914ee596b13b56398210d5758feb1b6765e00209f5e4c45e9bfe
4
- data.tar.gz: 9d6bf62bb81a7787c0b100acb888496bbbf06f898fda036073e0e4d65bd01f15
3
+ metadata.gz: 29b2c810b50fb84aee08f79e49a7d6710b7bf74f8421efd2ce36a12c61bb5cb5
4
+ data.tar.gz: a183ed44f957f94de6736e0272193e873da6ca7d177a6cbad491682fc73596a8
5
5
  SHA512:
6
- metadata.gz: f899dc6e201f15c8f256ae5ae6686d1954bce35e72558da615428fe1a43c55bd1aca42071983cf81e45ad091492add405b3094e62f2c66c7333d004e08dabdc3
7
- data.tar.gz: 99c087232ca4f42199c55a2263daabcd8cc7f376e439ab8d258a0eb4b9a4b93d86150bb15d4498c53ac66c87a5226997a59b73a3d5cec5983f1d61f1f7010cb9
6
+ metadata.gz: 5587b5c11a6ffcc20213ddf8c7fc5fd1efe2d82f6d461e70d38c82fa55151956225388f45313cd2a6cda88bc839a6350ee821a3afdb942929f130ef2b5c5165a
7
+ data.tar.gz: 3c789067155a3ff7a76eade07734f3acf884fecacea1472a1755afcba7f833bef370dd4f359b2761eeceb907615c2cbbf728bdfc0aa61056b17e9f2cb39593e0
@@ -40,7 +40,7 @@ module Packs
40
40
  end
41
41
  end
42
42
 
43
- sig { params(file_move_operations: T::Array[Private::FileMoveOperation]).void }
43
+ sig { override.params(file_move_operations: T::Array[Private::FileMoveOperation]).void }
44
44
  def after_move_files!(file_move_operations)
45
45
  if @teams.any?
46
46
  Logging.section('Code Ownership') do
@@ -10,7 +10,7 @@ module Packs
10
10
  sig { abstract.params(file_move_operation: Private::FileMoveOperation).void }
11
11
  def before_move_file!(file_move_operation); end
12
12
 
13
- sig { params(file_move_operations: T::Array[Private::FileMoveOperation]).void }
13
+ sig { overridable.params(file_move_operations: T::Array[Private::FileMoveOperation]).void }
14
14
  def after_move_files!(file_move_operations)
15
15
  nil
16
16
  end
data/lib/packs/private.rb CHANGED
@@ -173,6 +173,7 @@ module Packs
173
173
  enforce_privacy: package.enforce_privacy,
174
174
  enforce_dependencies: package.enforce_dependencies,
175
175
  dependencies: package.dependencies,
176
+ violations: package.violations,
176
177
  metadata: package.metadata,
177
178
  config: package.config
178
179
  )
@@ -214,6 +215,7 @@ module Packs
214
215
  enforce_privacy: other_package.enforce_privacy,
215
216
  enforce_dependencies: other_package.enforce_dependencies,
216
217
  dependencies: new_dependencies.uniq.sort,
218
+ violations: other_package.violations,
217
219
  metadata: other_package.metadata,
218
220
  config: new_config
219
221
  )
@@ -304,6 +306,7 @@ module Packs
304
306
  dependencies: (package.dependencies + [dependency_name]).uniq.sort,
305
307
  enforce_privacy: package.enforce_privacy,
306
308
  enforce_dependencies: package.enforce_dependencies,
309
+ violations: package.violations,
307
310
  metadata: package.metadata,
308
311
  config: package.config
309
312
  )
@@ -395,6 +398,7 @@ module Packs
395
398
  enforce_dependencies: should_enforce_dependencies || false,
396
399
  enforce_privacy: enforce_privacy,
397
400
  dependencies: [],
401
+ violations: [],
398
402
  metadata: {},
399
403
  name: pack_name,
400
404
  config: config
@@ -0,0 +1,50 @@
1
+ # typed: strict
2
+
3
+ module Packs
4
+ class UpdateReferencesPostProcessor
5
+ include PerFileProcessorInterface
6
+
7
+ extend T::Sig
8
+
9
+ sig { override.params(file_move_operation: Private::FileMoveOperation).void }
10
+ def before_move_file!(file_move_operation)
11
+ nil
12
+ end
13
+
14
+ sig { override.params(file_move_operations: T::Array[Private::FileMoveOperation]).void }
15
+ def after_move_files!(file_move_operations)
16
+ return if file_move_operations.empty?
17
+
18
+ origin_pack = T.must(file_move_operations.first).origin_pack.name
19
+ destination_pack = T.must(file_move_operations.first).destination_pack.name
20
+
21
+ if self.class.ripgrep_enabled?
22
+ matching_files = `rg -l --hidden '#{origin_pack}' .`
23
+ matching_files.split("\n").each do |file_name|
24
+ substitute_references!(file_name, origin_pack, destination_pack)
25
+ end
26
+ else
27
+ Logging.print('For faster UpdateReferences install ripgrep: https://github.com/BurntSushi/ripgrep/tree/master')
28
+ Dir.glob('./**/*', File::FNM_DOTMATCH) do |file_name|
29
+ next if File.directory?(file_name)
30
+
31
+ substitute_references!(file_name, origin_pack, destination_pack)
32
+ end
33
+ end
34
+ end
35
+
36
+ sig { returns(T::Boolean) }
37
+ def self.ripgrep_enabled?
38
+ !!system('which', 'rg', out: File::NULL, err: :out)
39
+ end
40
+
41
+ private
42
+
43
+ sig { params(file_name: String, origin_pack: String, destination_pack: String).void }
44
+ def substitute_references!(file_name, origin_pack, destination_pack)
45
+ text = File.read(file_name)
46
+ replace = text.gsub(origin_pack, destination_pack)
47
+ File.open(file_name, 'w') { |file| file.puts replace }
48
+ end
49
+ end
50
+ end
data/lib/packs.rb CHANGED
@@ -16,6 +16,7 @@ require 'code_ownership'
16
16
  require 'packs/private'
17
17
  require 'packs/per_file_processor_interface'
18
18
  require 'packs/rubocop_post_processor'
19
+ require 'packs/update_references_post_processor'
19
20
  require 'packs/code_ownership_post_processor'
20
21
  require 'packs/logging'
21
22
  require 'packs/configuration'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.34
4
+ version: 0.0.35
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gusto Engineers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-16 00:00:00.000000000 Z
11
+ date: 2023-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: code_ownership
@@ -304,6 +304,7 @@ files:
304
304
  - lib/packs/private/pack_relationship_analyzer.rb
305
305
  - lib/packs/private/packwerk_wrapper/offenses_aggregator_formatter.rb
306
306
  - lib/packs/rubocop_post_processor.rb
307
+ - lib/packs/update_references_post_processor.rb
307
308
  - lib/packs/user_event_logger.rb
308
309
  homepage: https://github.com/rubyatscale/packs
309
310
  licenses: