packs 0.0.34 → 0.0.35

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: 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: