optparse_plus 0.0.1 → 0.0.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 +4 -4
- data/README.md +6 -2
- data/lib/optparse_plus/version.rb +1 -1
- data/lib/optparse_plus.rb +2 -2
- data/spec/optparse_plus_spec.rb +17 -0
- data/spec/test_scripts/cli.rb +13 -0
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb5cd3f950ad3d9c06b4553d5b2597626a4416f7
|
4
|
+
data.tar.gz: f3cba69f07aa05c98fdd3032c7c7909f63d01780
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 120ed7f19379852c94720f69b56dda4ab54d3793c5cc2efd3c3c9ecd2bb94cbd53eead0ba4f1f9a9d6334a68fa0ed4d5debb6b5486766fd91b2dee2b78706887
|
7
|
+
data.tar.gz: 32137b706fa2c5a5029ff9ac1fd27542a7c0f60b605d9b8a02070417ed009a0e2d25a0eaaf3e853d29d80f2f45de760ff2468e72986a7a64d3bc0b7291ec4454
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# OptparsePlus
|
2
2
|
|
3
|
-
|
3
|
+
OptparsePlus adds some helper methods to OptionParser, and let you define command line options more easily.
|
4
4
|
|
5
5
|
In your script, simply require 'optparse_plus' in stead of 'optparse', then the new methods of OptionParser are available for you.
|
6
6
|
|
@@ -30,6 +30,8 @@ require 'optparse_plus'
|
|
30
30
|
first_value, second_value = nil, nil
|
31
31
|
|
32
32
|
OptionParser.new_with_yaml do |opt|
|
33
|
+
opt.inherit_ruby_options("E") # Currently, -E and -d only are available options
|
34
|
+
|
33
35
|
opt.on(:first_option) {|status| first_value = status }
|
34
36
|
opt.on(:second_option) {|arg| second_value = arg }
|
35
37
|
opt.parse!
|
@@ -57,7 +59,7 @@ And if you execute:
|
|
57
59
|
You will see the following message:
|
58
60
|
|
59
61
|
```
|
60
|
-
test_program [OPTION]
|
62
|
+
test_program.rb [OPTION]
|
61
63
|
-E, --encoding=ex[:in] specify the default external and internal character encodings
|
62
64
|
-f, --first First option for a test script
|
63
65
|
-s, --second [=arg] Second option for a test script
|
@@ -96,6 +98,8 @@ second_option:
|
|
96
98
|
YAML
|
97
99
|
|
98
100
|
OptionParser.new_with_yaml(config_yaml) do |opt|
|
101
|
+
opt.inherit_ruby_options("E") # Currently, -E and -d only are available options
|
102
|
+
|
99
103
|
opt.on(:first_option) {|status| first_value = status }
|
100
104
|
opt.on(:second_option) {|arg| second_value = arg }
|
101
105
|
opt.parse!
|
data/lib/optparse_plus.rb
CHANGED
@@ -8,7 +8,7 @@ module OptparsePlus
|
|
8
8
|
|
9
9
|
module ClassMethods
|
10
10
|
def read_after_program_end(cur_file)
|
11
|
-
own_source =
|
11
|
+
own_source = open(cur_file) {|f| f.read }
|
12
12
|
last_token = Ripper.lex(own_source)[-1]
|
13
13
|
return nil unless last_token[1] == :on___end__
|
14
14
|
start = last_token[0][0]
|
@@ -134,7 +134,7 @@ YAML
|
|
134
134
|
end
|
135
135
|
|
136
136
|
def parse!
|
137
|
-
@opt_plus.opt_on
|
137
|
+
@opt_plus.opt_on if @opt_plus
|
138
138
|
super
|
139
139
|
end
|
140
140
|
|
data/spec/optparse_plus_spec.rb
CHANGED
@@ -97,6 +97,14 @@ describe OptparsePlus do
|
|
97
97
|
end
|
98
98
|
|
99
99
|
context("when options are registered using OptionParser#on") do
|
100
|
+
it 'accepts normal definitions' do
|
101
|
+
parser = OptparsePlusTest.new
|
102
|
+
set_argv("--first --second=something")
|
103
|
+
parser.parse_normal_definitions_using_on
|
104
|
+
expect(parser.first_option_given?).to be_truthy
|
105
|
+
expect(parser.second_option_value).to eq("something")
|
106
|
+
end
|
107
|
+
|
100
108
|
it 'accepts --second option with an argument' do
|
101
109
|
parser = OptparsePlusTest.new
|
102
110
|
set_argv("--first --second=something")
|
@@ -192,6 +200,15 @@ second_option:
|
|
192
200
|
YAML
|
193
201
|
end
|
194
202
|
|
203
|
+
describe '.new_with_yaml' do
|
204
|
+
it 'should not call File.read class method directly' do
|
205
|
+
# expect(File).to receive(:read) do
|
206
|
+
OptionParser.new_with_yaml(@config_yaml_with_banner)
|
207
|
+
# end
|
208
|
+
raise "An appropriate test should be added."
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
195
212
|
describe '#config_to_args' do
|
196
213
|
it 'can convert config in yaml to args of OptionParser#on' do
|
197
214
|
opt_plus = OptionParser::OptPlus.new(@config_yaml_without_banner)
|
data/spec/test_scripts/cli.rb
CHANGED
@@ -53,6 +53,19 @@ YAML
|
|
53
53
|
opt.parse!
|
54
54
|
end
|
55
55
|
end
|
56
|
+
|
57
|
+
def parse_normal_definitions_using_on
|
58
|
+
OptionParser.new("#{File.basename($0)} [OPTION]") do |opt|
|
59
|
+
opt.on('-f', '--first',
|
60
|
+
'First option for a test script') {|status| @first_option_given = status }
|
61
|
+
# opt.on(:first_option) {|status| @first_option_given = status }
|
62
|
+
|
63
|
+
opt.on('-s [arg]', '--second [=arg]',
|
64
|
+
'Second option for a test script') {|arg| @second_option_value = arg }
|
65
|
+
# opt.on(:second_option) {|arg| @second_option_value = arg }
|
66
|
+
opt.parse!
|
67
|
+
end
|
68
|
+
end
|
56
69
|
end
|
57
70
|
|
58
71
|
__END__
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: optparse_plus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- HASHIMOTO, Naoki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
description: "
|
55
|
+
description: '"optparse_plus" will let you define command line options more easily.'
|
56
56
|
email:
|
57
57
|
- hashimoto.naoki@gmail.com
|
58
58
|
executables: []
|
@@ -93,12 +93,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
93
93
|
version: '0'
|
94
94
|
requirements: []
|
95
95
|
rubyforge_project:
|
96
|
-
rubygems_version: 2.
|
96
|
+
rubygems_version: 2.6.4
|
97
97
|
signing_key:
|
98
98
|
specification_version: 4
|
99
|
-
summary: "
|
100
|
-
simply require 'optparse_plus' in stead of 'optparse', then the new methods
|
101
|
-
are available for you.
|
99
|
+
summary: '"optparse_plus" adds some helper methods to OptionParser. In your script,
|
100
|
+
simply require ''optparse_plus'' in stead of ''optparse'', then the new methods
|
101
|
+
of OptionParser are available for you.'
|
102
102
|
test_files:
|
103
103
|
- spec/optparse_plus_spec.rb
|
104
104
|
- spec/spec_helper.rb
|