opt_parse_validator 0.0.5 → 0.0.6
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da564ea023221e95e2ef0ee45258754314e7bcd8
|
4
|
+
data.tar.gz: e23c41c855f934d09205ce95b5231d4e5a781568
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb975e401d8c2b44c46d0c7b242a9f6050e37ea74fff3ec3759339f6ee2f65edbedf56e67198e0a16c7a4eed8b3f1dc9387042400eb69f4309d07119917617da
|
7
|
+
data.tar.gz: 1b1bce2783b48eb104edf9e35a921cbed61c3ddbd527bcbf571ae915e1fa6c356668497ce8710def3cf9efbf3e157087f6d4928626f454e7af1e9f3d4e01c7f0
|
data/README.md
CHANGED
@@ -8,6 +8,8 @@ OptParseValidator
|
|
8
8
|
|
9
9
|
|
10
10
|
### Available Validators & associated attributes:
|
11
|
+
- Array
|
12
|
+
- :separator (default: ',')
|
11
13
|
- Boolean
|
12
14
|
- Choice
|
13
15
|
- :choices (mandatory)
|
@@ -35,6 +37,8 @@ OptParseValidator
|
|
35
37
|
- Proxy
|
36
38
|
- :protocols
|
37
39
|
- :default_protocol
|
40
|
+
- Scope
|
41
|
+
- separator (default: ',')
|
38
42
|
- String
|
39
43
|
- URI
|
40
44
|
- :protocols
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module OptParseValidator
|
2
|
+
# Implementation of the Array Option
|
3
|
+
class OptArray < OptBase
|
4
|
+
# @param [ String ] value
|
5
|
+
#
|
6
|
+
# @return [ Array ]
|
7
|
+
def validate(value)
|
8
|
+
super(value)
|
9
|
+
value.split(separator)
|
10
|
+
end
|
11
|
+
|
12
|
+
# @return [ String ] The separator used to split the string into an array
|
13
|
+
def separator
|
14
|
+
attrs[:separator] || ','
|
15
|
+
end
|
16
|
+
|
17
|
+
# See OptBase#normalize
|
18
|
+
# @param [ Array ] value
|
19
|
+
def normalize(values)
|
20
|
+
values.each_with_index do |value, index|
|
21
|
+
values[index] = super(value)
|
22
|
+
end
|
23
|
+
values
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -1,3 +1,6 @@
|
|
1
|
-
%w(
|
1
|
+
%w(
|
2
|
+
base string integer positive_integer choice boolean uri url proxy credentials
|
3
|
+
path file_path directory_path array
|
4
|
+
).each do |opt|
|
2
5
|
require 'opt_parse_validator/opts/' + opt
|
3
6
|
end
|
data/opt_parse_validator.gemspec
CHANGED
@@ -24,9 +24,9 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_dependency 'addressable', '~> 2.3'
|
25
25
|
|
26
26
|
s.add_development_dependency 'rake', '~> 10.4'
|
27
|
-
s.add_development_dependency 'rspec', '~> 3.
|
27
|
+
s.add_development_dependency 'rspec', '~> 3.2'
|
28
28
|
s.add_development_dependency 'rspec-its', '~> 1.1'
|
29
|
-
s.add_development_dependency 'bundler', '~> 1.
|
30
|
-
s.add_development_dependency 'rubocop', '~> 0.
|
29
|
+
s.add_development_dependency 'bundler', '~> 1.7'
|
30
|
+
s.add_development_dependency 'rubocop', '~> 0.28'
|
31
31
|
s.add_development_dependency 'simplecov', '~> 0.9'
|
32
32
|
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe OptParseValidator::OptArray do
|
4
|
+
subject(:opt) { described_class.new(['-a', '--array VALUES'], attrs) }
|
5
|
+
let(:attrs) { {} }
|
6
|
+
|
7
|
+
describe '#validate' do
|
8
|
+
context 'when an empty value is given' do
|
9
|
+
it 'raises an error' do
|
10
|
+
expect { opt.validate('') }.to raise_error('Empty option value supplied')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'when the separator is not supplied' do
|
15
|
+
context 'when not present in the argument' do
|
16
|
+
it 'returns an array with the correct value' do
|
17
|
+
expect(opt.validate('rspec')).to eql %w(rspec)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context 'when present' do
|
22
|
+
it 'returns the expected array' do
|
23
|
+
expect(opt.validate('r1,r2,r3')).to eql %w(r1 r2 r3)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'when separator supplied' do
|
29
|
+
subject(:opt) { described_class.new(['-a', '--array VALUES'], separator: '-') }
|
30
|
+
|
31
|
+
it 'returns an array with the correct value' do
|
32
|
+
expect(opt.validate('r1,r2,r3')).to eql %w(r1,r2,r3)
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'returns the expected array' do
|
36
|
+
expect(opt.validate('r1-r2-r3')).to eql %w(r1 r2 r3)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe '#normalize' do
|
42
|
+
after { expect(opt.normalize(@value)).to eql @expected }
|
43
|
+
|
44
|
+
context 'when no :normalize attribute' do
|
45
|
+
it 'returns the value' do
|
46
|
+
@value = %w(t1 t2)
|
47
|
+
@expected = @value
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'when a single normalization' do
|
52
|
+
let(:attrs) { { normalize: :to_sym } }
|
53
|
+
|
54
|
+
it 'returns the expected value' do
|
55
|
+
@value = [1.0, 'test']
|
56
|
+
@expected = [1.0, :test]
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opt_parse_validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- WPScanTeam - Erwan le Rousseau
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '3.
|
47
|
+
version: '3.2'
|
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.
|
54
|
+
version: '3.2'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec-its
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,28 +72,28 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '1.
|
75
|
+
version: '1.7'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '1.
|
82
|
+
version: '1.7'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rubocop
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0.
|
89
|
+
version: '0.28'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0.
|
96
|
+
version: '0.28'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: simplecov
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,6 +128,7 @@ files:
|
|
128
128
|
- lib/opt_parse_validator/hacks.rb
|
129
129
|
- lib/opt_parse_validator/options_file.rb
|
130
130
|
- lib/opt_parse_validator/opts.rb
|
131
|
+
- lib/opt_parse_validator/opts/array.rb
|
131
132
|
- lib/opt_parse_validator/opts/base.rb
|
132
133
|
- lib/opt_parse_validator/opts/boolean.rb
|
133
134
|
- lib/opt_parse_validator/opts/choice.rb
|
@@ -150,6 +151,7 @@ files:
|
|
150
151
|
- spec/fixtures/r.txt
|
151
152
|
- spec/fixtures/rwx.txt
|
152
153
|
- spec/lib/opt_parse_validator/options_file_spec.rb
|
154
|
+
- spec/lib/opt_parse_validator/opts/array_spec.rb
|
153
155
|
- spec/lib/opt_parse_validator/opts/base_spec.rb
|
154
156
|
- spec/lib/opt_parse_validator/opts/boolean_spec.rb
|
155
157
|
- spec/lib/opt_parse_validator/opts/choice_spec.rb
|
@@ -197,6 +199,7 @@ test_files:
|
|
197
199
|
- spec/fixtures/r.txt
|
198
200
|
- spec/fixtures/rwx.txt
|
199
201
|
- spec/lib/opt_parse_validator/options_file_spec.rb
|
202
|
+
- spec/lib/opt_parse_validator/opts/array_spec.rb
|
200
203
|
- spec/lib/opt_parse_validator/opts/base_spec.rb
|
201
204
|
- spec/lib/opt_parse_validator/opts/boolean_spec.rb
|
202
205
|
- spec/lib/opt_parse_validator/opts/choice_spec.rb
|