packs 0.0.38 → 0.0.39

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: 876b307fd78af1128f0404e37f792d5b249b77ccba825fcd8afc3729ac77c242
4
- data.tar.gz: 39b947778eda7ce4aadd58830bb8abf320c3b1cf3f09327b503a24b93ea43add
3
+ metadata.gz: 01d0eabdf25328fdc677db1822e9fa63708f5fd300acac2a0a35642fdaf90406
4
+ data.tar.gz: 861dd9be5a4c13ffefaa3004631077023accd9ae13ec6f9cf616bd3247c24fcb
5
5
  SHA512:
6
- metadata.gz: 7aecd7614772de0eb3166954887d9012161697f355cd852a12d652f745c5bd424ac52839204762067fbb27d48ea8ffd56551f1c4eb6597fa50099cfd43f22070
7
- data.tar.gz: dbc2223fe7612e204f59548136bfc8b8f77355f321cfee17d25766a94ba7fb473be9fe47f2db9d95138a746dba1a7ce687c60befba05f481cfa4b2603f2bc547
6
+ metadata.gz: 71c3578facc93a54296f35722a872c810a87a9e368081a1d9041f8747ebe8cd34b8dc5a90b6207bf41c7be06222b7e8e748910d605805754704350c24f155726
7
+ data.tar.gz: 6c66f26b4825c4a57eb3aa08b1e6ce566241be72e83b7cad38faf9f24c6c50558977b6b8dfbc1be50c89bf02d870087da62fca8caafa3e5a39085f4abb569308
@@ -1,7 +1,7 @@
1
1
  # typed: strict
2
2
 
3
- require 'packs/user_event_logger'
4
- require 'packs/default_user_event_logger'
3
+ require_relative 'user_event_logger'
4
+ require_relative 'default_user_event_logger'
5
5
 
6
6
  module Packs
7
7
  class Configuration
@@ -0,0 +1,28 @@
1
+ # typed: strict
2
+
3
+ module Packs
4
+ module Private
5
+ module InteractiveCli
6
+ class PackDirectorySelector
7
+ extend T::Sig
8
+
9
+ sig { params(prompt: TTY::Prompt, question_text: String).returns(String) }
10
+ def self.select(prompt, question_text: 'Select a directory')
11
+ directories = T.let([], T::Array[String])
12
+
13
+ Packs::Specification.config.pack_paths.each do |path|
14
+ directories += Dir.glob(path).select { |f| File.directory? f }
15
+ end
16
+
17
+ prompt.select(
18
+ question_text,
19
+ directories,
20
+ filter: true,
21
+ per_page: 10,
22
+ show_help: :always
23
+ )
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,70 @@
1
+ # typed: strict
2
+
3
+ module Packs
4
+ module Private
5
+ module InteractiveCli
6
+ module UseCases
7
+ class MovePack
8
+ extend T::Sig
9
+ extend T::Helpers
10
+ include Interface
11
+
12
+ sig { override.params(prompt: TTY::Prompt).void }
13
+ def perform!(prompt)
14
+ move_type = prompt.select(
15
+ 'What do you want to do?',
16
+ {
17
+ 'Move a child pack to be nested under a parent pack' => :move_to_parent,
18
+ 'Move a pack to a folder that is not a pack' =>
19
+ :move_to_folder
20
+ }
21
+ )
22
+
23
+ case move_type
24
+ when :move_to_parent
25
+ child_pack = PackSelector.single_pack_select(prompt, question_text: 'Please select the child pack that will be nested')
26
+ parent_pack = PackSelector.single_pack_select(prompt, question_text: 'Please select the pack that will be the parent')
27
+
28
+ Packs.move_to_parent!(
29
+ parent_name: parent_pack.name,
30
+ pack_name: child_pack.name,
31
+ per_file_processors: [Packs::RubocopPostProcessor.new, Packs::CodeOwnershipPostProcessor.new]
32
+ )
33
+ when :move_to_folder
34
+ pack = PackSelector.single_pack_select(prompt, question_text: 'Please select the pack that you want to move')
35
+ destination = PackDirectorySelector.select(prompt, question_text: "What directory do you want to move #{pack.name} to?")
36
+
37
+ if Packs.find(destination)
38
+ use_move_to_parent = prompt.select(
39
+ "The directory #{destination} contains a pack. Add #{pack.last_name} as a dependency?",
40
+ { 'Yes' => true, 'No' => false }
41
+ )
42
+
43
+ if use_move_to_parent
44
+ Packs.move_to_parent!(
45
+ parent_name: destination,
46
+ pack_name: pack.name,
47
+ per_file_processors: [Packs::RubocopPostProcessor.new, Packs::CodeOwnershipPostProcessor.new]
48
+ )
49
+
50
+ return
51
+ end
52
+ end
53
+
54
+ Packs.move_to_folder!(
55
+ pack_name: pack.name,
56
+ destination: destination,
57
+ per_file_processors: [Packs::RubocopPostProcessor.new, Packs::CodeOwnershipPostProcessor.new]
58
+ )
59
+ end
60
+ end
61
+
62
+ sig { override.returns(String) }
63
+ def user_facing_name
64
+ 'Move a pack'
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -3,22 +3,23 @@
3
3
  # https://github.com/piotrmurach/tty-prompt
4
4
  require 'tty-prompt'
5
5
 
6
- require 'packs/private/interactive_cli/team_selector'
7
- require 'packs/private/interactive_cli/pack_selector'
8
- require 'packs/private/interactive_cli/file_selector'
9
- require 'packs/private/interactive_cli/use_cases/interface'
10
- require 'packs/private/interactive_cli/use_cases/create'
11
- require 'packs/private/interactive_cli/use_cases/move'
12
- require 'packs/private/interactive_cli/use_cases/add_dependency'
13
- require 'packs/private/interactive_cli/use_cases/get_info'
14
- require 'packs/private/interactive_cli/use_cases/query'
15
- require 'packs/private/interactive_cli/use_cases/make_public'
16
- require 'packs/private/interactive_cli/use_cases/move_to_parent'
17
- require 'packs/private/interactive_cli/use_cases/rename'
18
- require 'packs/private/interactive_cli/use_cases/check'
19
- require 'packs/private/interactive_cli/use_cases/update'
20
- require 'packs/private/interactive_cli/use_cases/validate'
21
- require 'packs/private/interactive_cli/use_cases/lint_package_yml_files'
6
+ require_relative 'interactive_cli/team_selector'
7
+ require_relative 'interactive_cli/pack_selector'
8
+ require_relative 'interactive_cli/pack_directory_selector'
9
+ require_relative 'interactive_cli/file_selector'
10
+ require_relative 'interactive_cli/use_cases/interface'
11
+ require_relative 'interactive_cli/use_cases/create'
12
+ require_relative 'interactive_cli/use_cases/move'
13
+ require_relative 'interactive_cli/use_cases/move_pack'
14
+ require_relative 'interactive_cli/use_cases/add_dependency'
15
+ require_relative 'interactive_cli/use_cases/get_info'
16
+ require_relative 'interactive_cli/use_cases/query'
17
+ require_relative 'interactive_cli/use_cases/make_public'
18
+ require_relative 'interactive_cli/use_cases/rename'
19
+ require_relative 'interactive_cli/use_cases/check'
20
+ require_relative 'interactive_cli/use_cases/update'
21
+ require_relative 'interactive_cli/use_cases/validate'
22
+ require_relative 'interactive_cli/use_cases/lint_package_yml_files'
22
23
 
23
24
  module Packs
24
25
  module Private
data/lib/packs/private.rb CHANGED
@@ -6,9 +6,9 @@ require 'tmpdir'
6
6
  require 'rainbow'
7
7
  require 'sorbet-runtime'
8
8
 
9
- require 'packs/private/file_move_operation'
10
- require 'packs/private/pack_relationship_analyzer'
11
- require 'packs/private/interactive_cli'
9
+ require_relative 'private/file_move_operation'
10
+ require_relative 'private/pack_relationship_analyzer'
11
+ require_relative 'private/interactive_cli'
12
12
 
13
13
  require 'date'
14
14
 
data/lib/packs.rb CHANGED
@@ -13,14 +13,14 @@ require 'code_teams'
13
13
  require 'code_ownership'
14
14
 
15
15
  # Private implementation requires
16
- require 'packs/private'
17
- require 'packs/per_file_processor_interface'
18
- require 'packs/rubocop_post_processor'
19
- require 'packs/update_references_post_processor'
20
- require 'packs/code_ownership_post_processor'
21
- require 'packs/logging'
22
- require 'packs/configuration'
23
- require 'packs/cli'
16
+ require_relative 'packs/private'
17
+ require_relative 'packs/per_file_processor_interface'
18
+ require_relative 'packs/rubocop_post_processor'
19
+ require_relative 'packs/update_references_post_processor'
20
+ require_relative 'packs/code_ownership_post_processor'
21
+ require_relative 'packs/logging'
22
+ require_relative 'packs/configuration'
23
+ require_relative 'packs/cli'
24
24
 
25
25
  module Packs
26
26
  extend T::Sig
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.38
4
+ version: 0.0.39
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-12-15 00:00:00.000000000 Z
11
+ date: 2024-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: code_ownership
@@ -285,6 +285,7 @@ files:
285
285
  - lib/packs/private/file_move_operation.rb
286
286
  - lib/packs/private/interactive_cli.rb
287
287
  - lib/packs/private/interactive_cli/file_selector.rb
288
+ - lib/packs/private/interactive_cli/pack_directory_selector.rb
288
289
  - lib/packs/private/interactive_cli/pack_selector.rb
289
290
  - lib/packs/private/interactive_cli/team_selector.rb
290
291
  - lib/packs/private/interactive_cli/use_cases/add_dependency.rb
@@ -296,7 +297,7 @@ files:
296
297
  - lib/packs/private/interactive_cli/use_cases/lint_package_yml_files.rb
297
298
  - lib/packs/private/interactive_cli/use_cases/make_public.rb
298
299
  - lib/packs/private/interactive_cli/use_cases/move.rb
299
- - lib/packs/private/interactive_cli/use_cases/move_to_parent.rb
300
+ - lib/packs/private/interactive_cli/use_cases/move_pack.rb
300
301
  - lib/packs/private/interactive_cli/use_cases/query.rb
301
302
  - lib/packs/private/interactive_cli/use_cases/rename.rb
302
303
  - lib/packs/private/interactive_cli/use_cases/update.rb
@@ -329,7 +330,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
329
330
  - !ruby/object:Gem::Version
330
331
  version: '0'
331
332
  requirements: []
332
- rubygems_version: 3.4.10
333
+ rubygems_version: 3.5.3
333
334
  signing_key:
334
335
  specification_version: 4
335
336
  summary: Provides CLI tools for working with ruby packs.
@@ -1,31 +0,0 @@
1
- # typed: strict
2
-
3
- module Packs
4
- module Private
5
- module InteractiveCli
6
- module UseCases
7
- class MoveToParent
8
- extend T::Sig
9
- extend T::Helpers
10
- include Interface
11
-
12
- sig { override.params(prompt: TTY::Prompt).void }
13
- def perform!(prompt)
14
- child_pack = PackSelector.single_pack_select(prompt, question_text: 'Please select the child pack that will be nested')
15
- parent_pack = PackSelector.single_pack_select(prompt, question_text: 'Please select the pack that will be the parent')
16
- Packs.move_to_parent!(
17
- parent_name: parent_pack.name,
18
- pack_name: child_pack.name,
19
- per_file_processors: [Packs::RubocopPostProcessor.new, Packs::CodeOwnershipPostProcessor.new]
20
- )
21
- end
22
-
23
- sig { override.returns(String) }
24
- def user_facing_name
25
- 'Move a child pack to be nested under a parent pack'
26
- end
27
- end
28
- end
29
- end
30
- end
31
- end