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 +4 -4
- data/lib/packs/configuration.rb +2 -2
- data/lib/packs/private/interactive_cli/pack_directory_selector.rb +28 -0
- data/lib/packs/private/interactive_cli/use_cases/move_pack.rb +70 -0
- data/lib/packs/private/interactive_cli.rb +17 -16
- data/lib/packs/private.rb +3 -3
- data/lib/packs.rb +8 -8
- metadata +5 -4
- data/lib/packs/private/interactive_cli/use_cases/move_to_parent.rb +0 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01d0eabdf25328fdc677db1822e9fa63708f5fd300acac2a0a35642fdaf90406
|
4
|
+
data.tar.gz: 861dd9be5a4c13ffefaa3004631077023accd9ae13ec6f9cf616bd3247c24fcb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71c3578facc93a54296f35722a872c810a87a9e368081a1d9041f8747ebe8cd34b8dc5a90b6207bf41c7be06222b7e8e748910d605805754704350c24f155726
|
7
|
+
data.tar.gz: 6c66f26b4825c4a57eb3aa08b1e6ce566241be72e83b7cad38faf9f24c6c50558977b6b8dfbc1be50c89bf02d870087da62fca8caafa3e5a39085f4abb569308
|
data/lib/packs/configuration.rb
CHANGED
@@ -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
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
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
|
-
|
10
|
-
|
11
|
-
|
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
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
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.
|
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:
|
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/
|
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.
|
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
|