mcli 0.2.0 → 0.7.0
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/.gitignore +1 -0
- data/lib/mcli.rb +1 -1
- data/lib/mcli/command.rb +16 -0
- data/lib/mcli/command/option.rb +1 -1
- data/lib/mcli/command_group.rb +8 -0
- data/lib/mcli/version.rb +1 -1
- data/mcli.gemspec +3 -3
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ddfcf04bb4cb996fc21aeea2dca7ef2792d568d565beb63fba843e0aeffa29f
|
4
|
+
data.tar.gz: f98c3c1b08f48e47178315b9fc7ae5bac4ab31ddf5bf667889a7d0db38cf0e4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8901533c3bc6ec5db845560e1730815908b56ffc1b6d8bc63b00db7dd672b6a55e5b9f2ad9a1dcaea037acc42f3890a52b7326b38f8d089e0e5c7a252b505e3
|
7
|
+
data.tar.gz: cf8d25519029d0d1c8c5d2b133664839f8996a2e7b5985e60db4488f16071d0354493c4755be8cbc6f16f0e89cdc936a83ca0024622746d8eaf5daae4af5c361
|
data/.gitignore
CHANGED
data/lib/mcli.rb
CHANGED
data/lib/mcli/command.rb
CHANGED
@@ -37,6 +37,8 @@ class MCLI::Command
|
|
37
37
|
|
38
38
|
def create_parser
|
39
39
|
OptionParser.new.tap do |parser|
|
40
|
+
parser.program_name = self.class.command_name
|
41
|
+
|
40
42
|
parser.on("-h", "--help", "Help") do
|
41
43
|
raise MCLI::HelpError.new
|
42
44
|
end
|
@@ -44,6 +46,11 @@ class MCLI::Command
|
|
44
46
|
end
|
45
47
|
|
46
48
|
class << self
|
49
|
+
def description(desc=nil)
|
50
|
+
@description = desc unless desc.nil?
|
51
|
+
@description ||= ''
|
52
|
+
end
|
53
|
+
|
47
54
|
def option(option_name, opts={})
|
48
55
|
options << Option.new(option_name, opts)
|
49
56
|
end
|
@@ -53,9 +60,14 @@ class MCLI::Command
|
|
53
60
|
end
|
54
61
|
|
55
62
|
def register_as(command_name)
|
63
|
+
@command_name = command_name
|
56
64
|
MCLI::CommandGroup.register(command_name, self)
|
57
65
|
end
|
58
66
|
|
67
|
+
def register_as_root
|
68
|
+
MCLI::CommandGroup.register_root(self)
|
69
|
+
end
|
70
|
+
|
59
71
|
def capture_all!
|
60
72
|
@capture_all = true
|
61
73
|
end
|
@@ -64,6 +76,10 @@ class MCLI::Command
|
|
64
76
|
@capture_all
|
65
77
|
end
|
66
78
|
|
79
|
+
def command_name
|
80
|
+
@command_name
|
81
|
+
end
|
82
|
+
|
67
83
|
def call
|
68
84
|
new(ARGV).tap do |command|
|
69
85
|
begin
|
data/lib/mcli/command/option.rb
CHANGED
@@ -17,7 +17,7 @@ class MCLI::Command::Option
|
|
17
17
|
[].tap do |args|
|
18
18
|
args << "-#{@alias}" if @alias
|
19
19
|
args << "--#{@name} #{@name.upcase}" if @required && !@boolean
|
20
|
-
args << "--#{@name} [#{@name.upcase}]" if !@required && !@boolean
|
20
|
+
args << "--#{@name} [#{@default || @name.upcase}]" if !@required && !@boolean
|
21
21
|
args << "--[no-]#{@name}" if @boolean
|
22
22
|
end
|
23
23
|
end
|
data/lib/mcli/command_group.rb
CHANGED
@@ -4,6 +4,10 @@ class MCLI::CommandGroup
|
|
4
4
|
commands[command_name] = command_klass
|
5
5
|
end
|
6
6
|
|
7
|
+
def register_root(command_klass)
|
8
|
+
@root_command = command_klass
|
9
|
+
end
|
10
|
+
|
7
11
|
def commands
|
8
12
|
@commands ||= {}
|
9
13
|
end
|
@@ -11,6 +15,10 @@ class MCLI::CommandGroup
|
|
11
15
|
def clear
|
12
16
|
@commands = {}
|
13
17
|
end
|
18
|
+
|
19
|
+
def root_command
|
20
|
+
@root_command
|
21
|
+
end
|
14
22
|
end
|
15
23
|
end
|
16
24
|
|
data/lib/mcli/version.rb
CHANGED
data/mcli.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^bin/mcli}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
-
spec.add_development_dependency "bundler"
|
24
|
-
spec.add_development_dependency "rake"
|
25
|
-
spec.add_development_dependency "rspec"
|
23
|
+
spec.add_development_dependency "bundler"
|
24
|
+
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency "rspec"
|
26
26
|
end
|
metadata
CHANGED
@@ -1,58 +1,58 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mcli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Thomas
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
55
|
-
description:
|
54
|
+
version: '0'
|
55
|
+
description:
|
56
56
|
email:
|
57
57
|
- thomas07@vt.edu
|
58
58
|
executables:
|
@@ -82,7 +82,7 @@ homepage: https://github.com/thomas07vt/mcli
|
|
82
82
|
licenses:
|
83
83
|
- MIT
|
84
84
|
metadata: {}
|
85
|
-
post_install_message:
|
85
|
+
post_install_message:
|
86
86
|
rdoc_options: []
|
87
87
|
require_paths:
|
88
88
|
- lib
|
@@ -97,8 +97,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
97
|
- !ruby/object:Gem::Version
|
98
98
|
version: '0'
|
99
99
|
requirements: []
|
100
|
-
rubygems_version: 3.0.
|
101
|
-
signing_key:
|
100
|
+
rubygems_version: 3.0.8
|
101
|
+
signing_key:
|
102
102
|
specification_version: 4
|
103
103
|
summary: Create CLI tools using ruby objects with a nice API
|
104
104
|
test_files: []
|