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