optimist_xl 3.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 +7 -0
- data/.gitignore +19 -0
- data/.travis.yml +13 -0
- data/FAQ.txt +92 -0
- data/Gemfile +4 -0
- data/History.txt +177 -0
- data/README.md +81 -0
- data/Rakefile +15 -0
- data/examples/a_basic_example.rb +10 -0
- data/examples/banners1.rb +11 -0
- data/examples/banners2.rb +12 -0
- data/examples/banners3.rb +14 -0
- data/examples/medium_example.rb +15 -0
- data/examples/permitted.rb +15 -0
- data/examples/subcommands.rb +15 -0
- data/examples/types.rb +12 -0
- data/examples/types_custom.rb +34 -0
- data/lib/optimist_xl.rb +1297 -0
- data/lib/optimist_xl/chronic.rb +36 -0
- data/optimist_xl.gemspec +35 -0
- data/test/optimist_xl/command_line_error_test.rb +27 -0
- data/test/optimist_xl/help_needed_test.rb +19 -0
- data/test/optimist_xl/parser_educate_test.rb +177 -0
- data/test/optimist_xl/parser_opt_test.rb +14 -0
- data/test/optimist_xl/parser_parse_test.rb +79 -0
- data/test/optimist_xl/parser_test.rb +1404 -0
- data/test/optimist_xl/permitted_test.rb +92 -0
- data/test/optimist_xl/subcommands_test.rb +153 -0
- data/test/optimist_xl/version_needed_test.rb +19 -0
- data/test/optimist_xl_test.rb +190 -0
- data/test/support/assert_helpers.rb +52 -0
- data/test/test_helper.rb +22 -0
- metadata +140 -0
@@ -0,0 +1,52 @@
|
|
1
|
+
module Minitest::Assertions
|
2
|
+
def assert_parses_correctly(parser, commandline, expected_opts,
|
3
|
+
expected_leftovers)
|
4
|
+
opts = parser.parse commandline
|
5
|
+
assert_equal expected_opts, opts
|
6
|
+
assert_equal expected_leftovers, parser.leftovers
|
7
|
+
end
|
8
|
+
|
9
|
+
def assert_stderr(str = nil, msg = nil)
|
10
|
+
msg = "#{msg}.\n" if msg
|
11
|
+
|
12
|
+
old_stderr, $stderr = $stderr, StringIO.new('')
|
13
|
+
yield
|
14
|
+
assert_match str, $stderr.string, msg if str
|
15
|
+
ensure
|
16
|
+
$stderr = old_stderr
|
17
|
+
end
|
18
|
+
|
19
|
+
def assert_stdout(str = nil, msg = nil)
|
20
|
+
msg = "#{msg}.\n" if msg
|
21
|
+
|
22
|
+
old_stdout, $stdout = $stdout, StringIO.new('')
|
23
|
+
yield
|
24
|
+
assert_match str, $stdout.string, msg if str
|
25
|
+
ensure
|
26
|
+
$stdout = old_stdout
|
27
|
+
end
|
28
|
+
|
29
|
+
# like assert raises, but if it does raise, it checks status
|
30
|
+
# NOTE: this does not ensure the exception is raised
|
31
|
+
def assert_system_exit *exp
|
32
|
+
msg = "#{exp.pop}.\n" if String === exp.last
|
33
|
+
status = exp.first
|
34
|
+
|
35
|
+
begin
|
36
|
+
yield
|
37
|
+
rescue SystemExit => e
|
38
|
+
assert_equal status, e.status {
|
39
|
+
exception_details(e, "#{msg}#{mu_pp(exp)} exception expected, not")
|
40
|
+
} if status
|
41
|
+
return true
|
42
|
+
end
|
43
|
+
flunk "#{msg}#{mu_pp(exp)} SystemExit expected but nothing was raised."
|
44
|
+
end
|
45
|
+
|
46
|
+
# wrapper around common assertion checking pattern
|
47
|
+
def assert_raises_errmatch(err_klass, err_regexp, &b)
|
48
|
+
err = assert_raises(err_klass, &b)
|
49
|
+
assert_match(err_regexp, err.message)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
2
|
+
|
3
|
+
unless ENV['MUTANT']
|
4
|
+
begin
|
5
|
+
require "coveralls"
|
6
|
+
Coveralls.wear! do
|
7
|
+
add_filter '/test/'
|
8
|
+
end
|
9
|
+
rescue LoadError
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
begin
|
14
|
+
require "pry"
|
15
|
+
rescue LoadError
|
16
|
+
end
|
17
|
+
|
18
|
+
require 'minitest/autorun'
|
19
|
+
|
20
|
+
Dir[File.expand_path('../support/**/*.rb', __FILE__)].each { |f| require f }
|
21
|
+
|
22
|
+
require 'optimist_xl'
|
metadata
ADDED
@@ -0,0 +1,140 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: optimist_xl
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 3.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- William Morgan
|
8
|
+
- Keenan Brock
|
9
|
+
- Jason Frey
|
10
|
+
- Ben Bowers
|
11
|
+
autorequire:
|
12
|
+
bindir: bin
|
13
|
+
cert_chain: []
|
14
|
+
date: 2020-01-20 00:00:00.000000000 Z
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: minitest
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - "~>"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 5.4.3
|
23
|
+
type: :development
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 5.4.3
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rake
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - "~>"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '10.0'
|
37
|
+
type: :development
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - "~>"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '10.0'
|
44
|
+
- !ruby/object:Gem::Dependency
|
45
|
+
name: chronic
|
46
|
+
requirement: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '0'
|
51
|
+
type: :development
|
52
|
+
prerelease: false
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
description: |-
|
59
|
+
OptimistXL is a commandline option parser for Ruby that just
|
60
|
+
gets out of your way. One line of code per option is all you need to write.
|
61
|
+
For that, you get a nice automatically-generated help page, robust option
|
62
|
+
parsing, command subcompletion, and sensible defaults for everything you don't
|
63
|
+
specify. This gem is an enhanced-feature fork of the Optimist gem.
|
64
|
+
email: nanobowers@gmail.com
|
65
|
+
executables: []
|
66
|
+
extensions: []
|
67
|
+
extra_rdoc_files: []
|
68
|
+
files:
|
69
|
+
- ".gitignore"
|
70
|
+
- ".travis.yml"
|
71
|
+
- FAQ.txt
|
72
|
+
- Gemfile
|
73
|
+
- History.txt
|
74
|
+
- README.md
|
75
|
+
- Rakefile
|
76
|
+
- examples/a_basic_example.rb
|
77
|
+
- examples/banners1.rb
|
78
|
+
- examples/banners2.rb
|
79
|
+
- examples/banners3.rb
|
80
|
+
- examples/medium_example.rb
|
81
|
+
- examples/permitted.rb
|
82
|
+
- examples/subcommands.rb
|
83
|
+
- examples/types.rb
|
84
|
+
- examples/types_custom.rb
|
85
|
+
- lib/optimist_xl.rb
|
86
|
+
- lib/optimist_xl/chronic.rb
|
87
|
+
- optimist_xl.gemspec
|
88
|
+
- test/optimist_xl/command_line_error_test.rb
|
89
|
+
- test/optimist_xl/help_needed_test.rb
|
90
|
+
- test/optimist_xl/parser_educate_test.rb
|
91
|
+
- test/optimist_xl/parser_opt_test.rb
|
92
|
+
- test/optimist_xl/parser_parse_test.rb
|
93
|
+
- test/optimist_xl/parser_test.rb
|
94
|
+
- test/optimist_xl/permitted_test.rb
|
95
|
+
- test/optimist_xl/subcommands_test.rb
|
96
|
+
- test/optimist_xl/version_needed_test.rb
|
97
|
+
- test/optimist_xl_test.rb
|
98
|
+
- test/support/assert_helpers.rb
|
99
|
+
- test/test_helper.rb
|
100
|
+
homepage: https://github.com/nanobowers/optimist_xl/
|
101
|
+
licenses:
|
102
|
+
- MIT
|
103
|
+
metadata:
|
104
|
+
changelog_uri: https://github.com/nanobowers/optimist_xl/blob/master/History.txt
|
105
|
+
source_code_uri: https://github.com/nanobowers/optimist_xl/
|
106
|
+
bug_tracker_uri: https://github.com/nanobowers/optimist_xl/issues
|
107
|
+
post_install_message:
|
108
|
+
rdoc_options: []
|
109
|
+
require_paths:
|
110
|
+
- lib
|
111
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - ">="
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '0'
|
116
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
121
|
+
requirements: []
|
122
|
+
rubyforge_project:
|
123
|
+
rubygems_version: 2.7.4
|
124
|
+
signing_key:
|
125
|
+
specification_version: 4
|
126
|
+
summary: OptimistXL is a commandline option parser for Ruby that just gets out of
|
127
|
+
your way.
|
128
|
+
test_files:
|
129
|
+
- test/optimist_xl/command_line_error_test.rb
|
130
|
+
- test/optimist_xl/help_needed_test.rb
|
131
|
+
- test/optimist_xl/parser_educate_test.rb
|
132
|
+
- test/optimist_xl/parser_opt_test.rb
|
133
|
+
- test/optimist_xl/parser_parse_test.rb
|
134
|
+
- test/optimist_xl/parser_test.rb
|
135
|
+
- test/optimist_xl/permitted_test.rb
|
136
|
+
- test/optimist_xl/subcommands_test.rb
|
137
|
+
- test/optimist_xl/version_needed_test.rb
|
138
|
+
- test/optimist_xl_test.rb
|
139
|
+
- test/support/assert_helpers.rb
|
140
|
+
- test/test_helper.rb
|