packs 0.0.38 → 0.0.39

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