simple-command-parser 1.0 → 1.1
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/simple-command-parser.rb +14 -4
- data/simple-command-parser.gemspec +3 -3
- data/test/command_test.rb +1 -1
- metadata +7 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5fef68772b204390647749cf55822d27f3c99fa98f62f958b4f556021fbfb511
|
4
|
+
data.tar.gz: 84fadcbd63484d4034b33609e6b72c23ac96502209de576a6314fb2d7f2b9635
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c350db31c5837dae7b2c74576144e0783bc28478c626db00dff434be90ee3af329033e03ad66e76072deabf0eaf3634da44b3ead5340d663f2cfa59206b45a0d
|
7
|
+
data.tar.gz: 3b7e75977e0e85e66d1fa3eb4cb7026314f74a7c476d3a0a31402d109364ccd5f1ddb19445bc8804b5f2149c04b7ea72d6fdff6b592a268826021d1c95c4df39
|
@@ -6,11 +6,16 @@ module Simple
|
|
6
6
|
|
7
7
|
class UsageError < StandardError; end
|
8
8
|
|
9
|
-
def self.run(*args)
|
10
|
-
|
9
|
+
def self.run!(*args)
|
10
|
+
begin
|
11
|
+
run(*args)
|
12
|
+
rescue UsageError => e
|
13
|
+
warn "#{$0}: #{e}"
|
14
|
+
exit(1)
|
15
|
+
end
|
11
16
|
end
|
12
17
|
|
13
|
-
def run(args=ARGV, **defaults)
|
18
|
+
def self.run(args=ARGV, **defaults)
|
14
19
|
cmd_name = args.shift or raise UsageError, "No command given"
|
15
20
|
cmd_class = Command.find_command(cmd_name) or raise UsageError, "Unknown command: #{cmd_name.inspect}"
|
16
21
|
options = defaults.merge(cmd_class.defaults.merge(SimpleOptionParser.parse(args)))
|
@@ -25,6 +30,7 @@ module Simple
|
|
25
30
|
end
|
26
31
|
|
27
32
|
def self.find_command(name)
|
33
|
+
@@command_classes ||= []
|
28
34
|
map = @@command_classes.select { |k| k.subclasses.empty? }.map { |k| [k.command_name, k] }.to_h
|
29
35
|
map[name]
|
30
36
|
end
|
@@ -42,11 +48,15 @@ module Simple
|
|
42
48
|
|
43
49
|
def initialize(options={})
|
44
50
|
options.each do |key, value|
|
45
|
-
raise
|
51
|
+
raise UsageError, "Unknown option: #{key.inspect}" unless respond_to?(key)
|
46
52
|
send("#{key}=", value)
|
47
53
|
end
|
48
54
|
end
|
49
55
|
|
56
|
+
def run(args)
|
57
|
+
# implemented by subclass
|
58
|
+
end
|
59
|
+
|
50
60
|
end
|
51
61
|
|
52
62
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'simple-command-parser'
|
3
|
-
s.version = '1.
|
3
|
+
s.version = '1.1'
|
4
4
|
s.summary = 'A simple command parser.'
|
5
5
|
s.author = 'John Labovitz'
|
6
6
|
s.email = 'johnl@johnlabovitz.com'
|
@@ -16,8 +16,8 @@ Gem::Specification.new do |s|
|
|
16
16
|
|
17
17
|
s.add_dependency 'simple_option_parser', '~> 0.8'
|
18
18
|
|
19
|
-
s.add_development_dependency 'bundler', '~> 2.
|
19
|
+
s.add_development_dependency 'bundler', '~> 2.6'
|
20
20
|
s.add_development_dependency 'minitest', '~> 5.22'
|
21
21
|
s.add_development_dependency 'minitest-power_assert', '~> 0.3'
|
22
|
-
s.add_development_dependency 'rake', '~> 13.
|
22
|
+
s.add_development_dependency 'rake', '~> 13.3'
|
23
23
|
end
|
data/test/command_test.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple-command-parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '1.
|
4
|
+
version: '1.1'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Labovitz
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: simple_option_parser
|
@@ -30,14 +29,14 @@ dependencies:
|
|
30
29
|
requirements:
|
31
30
|
- - "~>"
|
32
31
|
- !ruby/object:Gem::Version
|
33
|
-
version: '2.
|
32
|
+
version: '2.6'
|
34
33
|
type: :development
|
35
34
|
prerelease: false
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
37
36
|
requirements:
|
38
37
|
- - "~>"
|
39
38
|
- !ruby/object:Gem::Version
|
40
|
-
version: '2.
|
39
|
+
version: '2.6'
|
41
40
|
- !ruby/object:Gem::Dependency
|
42
41
|
name: minitest
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +71,14 @@ dependencies:
|
|
72
71
|
requirements:
|
73
72
|
- - "~>"
|
74
73
|
- !ruby/object:Gem::Version
|
75
|
-
version: '13.
|
74
|
+
version: '13.3'
|
76
75
|
type: :development
|
77
76
|
prerelease: false
|
78
77
|
version_requirements: !ruby/object:Gem::Requirement
|
79
78
|
requirements:
|
80
79
|
- - "~>"
|
81
80
|
- !ruby/object:Gem::Version
|
82
|
-
version: '13.
|
81
|
+
version: '13.3'
|
83
82
|
description: Simple::CommandParser is a simple command parser.
|
84
83
|
email: johnl@johnlabovitz.com
|
85
84
|
executables: []
|
@@ -97,7 +96,6 @@ homepage: http://github.com/jslabovitz/simple-command-parser
|
|
97
96
|
licenses:
|
98
97
|
- MIT
|
99
98
|
metadata: {}
|
100
|
-
post_install_message:
|
101
99
|
rdoc_options: []
|
102
100
|
require_paths:
|
103
101
|
- lib
|
@@ -112,8 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
110
|
- !ruby/object:Gem::Version
|
113
111
|
version: '0'
|
114
112
|
requirements: []
|
115
|
-
rubygems_version: 3.
|
116
|
-
signing_key:
|
113
|
+
rubygems_version: 3.6.9
|
117
114
|
specification_version: 4
|
118
115
|
summary: A simple command parser.
|
119
116
|
test_files:
|