mcli 0.2.0 → 0.7.0

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: 28be10940e26365f8220e4527b2489a569793bfed2cfd447b192cc699ea3d867
4
- data.tar.gz: 346512463395635971fb1d121c112eb46f16c53796e8536eee9e016a404458c6
3
+ metadata.gz: 3ddfcf04bb4cb996fc21aeea2dca7ef2792d568d565beb63fba843e0aeffa29f
4
+ data.tar.gz: f98c3c1b08f48e47178315b9fc7ae5bac4ab31ddf5bf667889a7d0db38cf0e4f
5
5
  SHA512:
6
- metadata.gz: 1509cc7add46967523cb0a68be0d7793b7f019c3dd9b6e173f846718da954657997315e7dffaefa319a2c8f206da186a4dc2dd7d4ebe023e20a8abda0f4871a3
7
- data.tar.gz: 9924b09bfdb5afd6dd960f51e9dbcab4d44258a886f653a18cdcb5eaa1c90024133e400ff4014fb8e573f8f5076582e8220307dad120b9ab0b2adf16d7f4d2ee
6
+ metadata.gz: d8901533c3bc6ec5db845560e1730815908b56ffc1b6d8bc63b00db7dd672b6a55e5b9f2ad9a1dcaea037acc42f3890a52b7326b38f8d089e0e5c7a252b505e3
7
+ data.tar.gz: cf8d25519029d0d1c8c5d2b133664839f8996a2e7b5985e60db4488f16071d0354493c4755be8cbc6f16f0e89cdc936a83ca0024622746d8eaf5daae4af5c361
data/.gitignore CHANGED
@@ -10,3 +10,4 @@
10
10
 
11
11
  # rspec failure tracking
12
12
  .rspec_status
13
+ mcli-*.gem
@@ -13,7 +13,7 @@ module MCLI
13
13
 
14
14
  CommandGroup.commands.fetch(command.to_s.to_sym) do |command|
15
15
  ARGV.unshift(command)
16
- NullCommand
16
+ CommandGroup.root_command || NullCommand
17
17
  end.call
18
18
  end
19
19
  end
@@ -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
@@ -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
@@ -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
 
@@ -1,3 +1,3 @@
1
1
  module MCLI
2
- VERSION = "0.2.0"
2
+ VERSION = "0.7.0"
3
3
  end
@@ -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", "~> 1.14"
24
- spec.add_development_dependency "rake", "~> 10.0"
25
- spec.add_development_dependency "rspec", "~> 3.0"
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.2.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: 2019-10-30 00:00:00.000000000 Z
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: '1.14'
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: '1.14'
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: '10.0'
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: '10.0'
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: '3.0'
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: '3.0'
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.6
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: []