simple-command-parser 1.0 → 1.2

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: ff2103f8c893eedfe024caec1c2a7af520cf36fbff06a9eab200c84b0c281941
4
- data.tar.gz: 1f215bccf6ce68216112926a0acb986ebde70f0f2bca56062d7b073f82622e58
3
+ metadata.gz: 16cd07f174304e5638c44cba3f2a5a9c16c72e6261740d780b8b66a373e27618
4
+ data.tar.gz: 51144364948e633245a6905fe28fff3abfd513a635e56b8fa2720b1610aa9f84
5
5
  SHA512:
6
- metadata.gz: 33f2987956cbc688cb663913cf1d684f889974f3bb1efda5844c3f7bf39565b199b986ff8d8f6316363535b6d8ffa13277316b12997898dd2e5f3e0bcd0a208c
7
- data.tar.gz: 05c27c24e72139def6a2c3074f964b8788fb985e4d590b8ee8c2ac42297ced1195a08635f21dc38201147ff63f4cd5eef63956cef65cd7adb131de1912c918f9
6
+ metadata.gz: 9c0eaf2507ec0fa82229b940dee182916b037359aede01f5e41fb5c8f55a7f18d3567a310e98cb04ff2350ed89ffd7c82b6939f483abc09b37a1529bd7de8c2c
7
+ data.tar.gz: 2eec0d8655855c24492597a61b111a6184dbe8782f5309df887ab2836b9dd6e07f40f8e5418b4f015a4479f2fd577258f519dd1ae78f3954999d255fd61daf11
data/Rakefile CHANGED
@@ -1,9 +1 @@
1
- require 'bundler/gem_tasks'
2
- Bundler.require
3
- require 'rake/testtask'
4
-
5
- Rake::TestTask.new do |t|
6
- t.test_files = FileList['test/*test.rb']
7
- end
8
-
9
- task :default => :test
1
+ require 'simple-rake-tasks'
@@ -6,11 +6,16 @@ module Simple
6
6
 
7
7
  class UsageError < StandardError; end
8
8
 
9
- def self.run(*args)
10
- new.run(*args)
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 CommandParser::UsageError, "Unknown option: #{key.inspect}" unless respond_to?(key)
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.0'
3
+ s.version = '1.2'
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.5'
20
- s.add_development_dependency 'minitest', '~> 5.22'
19
+ s.add_development_dependency 'minitest', '~> 5.25'
21
20
  s.add_development_dependency 'minitest-power_assert', '~> 0.3'
22
- s.add_development_dependency 'rake', '~> 13.2'
21
+ s.add_development_dependency 'rake', '~> 13.3'
22
+ s.add_development_dependency 'simple-rake-tasks', '~> 0.1'
23
23
  end
data/test/command_test.rb CHANGED
@@ -37,7 +37,7 @@ class Test < Minitest::Test
37
37
  end
38
38
 
39
39
  def setup
40
- @parser = Simple::CommandParser.new
40
+ @parser = Simple::CommandParser
41
41
  end
42
42
 
43
43
  def test_simple
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.0'
4
+ version: '1.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Labovitz
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-05-08 00:00:00.000000000 Z
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
@@ -25,61 +24,61 @@ dependencies:
25
24
  - !ruby/object:Gem::Version
26
25
  version: '0.8'
27
26
  - !ruby/object:Gem::Dependency
28
- name: bundler
27
+ name: minitest
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: '2.5'
32
+ version: '5.25'
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.5'
39
+ version: '5.25'
41
40
  - !ruby/object:Gem::Dependency
42
- name: minitest
41
+ name: minitest-power_assert
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: '5.22'
46
+ version: '0.3'
48
47
  type: :development
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: '5.22'
53
+ version: '0.3'
55
54
  - !ruby/object:Gem::Dependency
56
- name: minitest-power_assert
55
+ name: rake
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - "~>"
60
59
  - !ruby/object:Gem::Version
61
- version: '0.3'
60
+ version: '13.3'
62
61
  type: :development
63
62
  prerelease: false
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
65
  - - "~>"
67
66
  - !ruby/object:Gem::Version
68
- version: '0.3'
67
+ version: '13.3'
69
68
  - !ruby/object:Gem::Dependency
70
- name: rake
69
+ name: simple-rake-tasks
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
72
  - - "~>"
74
73
  - !ruby/object:Gem::Version
75
- version: '13.2'
74
+ version: '0.1'
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.2'
81
+ version: '0.1'
83
82
  description: Simple::CommandParser is a simple command parser.
84
83
  email: johnl@johnlabovitz.com
85
84
  executables: []
@@ -87,7 +86,6 @@ extensions: []
87
86
  extra_rdoc_files: []
88
87
  files:
89
88
  - ".gitignore"
90
- - Gemfile
91
89
  - README.md
92
90
  - Rakefile
93
91
  - lib/simple-command-parser.rb
@@ -97,7 +95,6 @@ homepage: http://github.com/jslabovitz/simple-command-parser
97
95
  licenses:
98
96
  - MIT
99
97
  metadata: {}
100
- post_install_message:
101
98
  rdoc_options: []
102
99
  require_paths:
103
100
  - lib
@@ -112,8 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
109
  - !ruby/object:Gem::Version
113
110
  version: '0'
114
111
  requirements: []
115
- rubygems_version: 3.5.10
116
- signing_key:
112
+ rubygems_version: 3.7.2
117
113
  specification_version: 4
118
114
  summary: A simple command parser.
119
115
  test_files:
data/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec