opt_parse_validator 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e4e1a583bd0dd3f0277825ac7f87a82c3bd7d937
4
- data.tar.gz: d8af127e4a81cdc8995d55581b80f0958a87021b
3
+ metadata.gz: da564ea023221e95e2ef0ee45258754314e7bcd8
4
+ data.tar.gz: e23c41c855f934d09205ce95b5231d4e5a781568
5
5
  SHA512:
6
- metadata.gz: 3673cb2bb2ed1bd2209e7c57d8fddc79ab5d67b70563453049061400c307a1e90421abcf2583dc15697b75611601835291e2b8894dad66b2857466c6f4a29fcb
7
- data.tar.gz: 695a17c09b549f96df4bd9cd7e16a993a690e6fc2072d9441d128892a473f71d4148c01a18bc4f4e918024f47ba969feec1e82c05ab7b7855025a1df17cc20dd
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(base string integer positive_integer choice boolean uri url proxy credentials path file_path directory_path).each do |opt|
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
@@ -1,4 +1,4 @@
1
1
  # Gem Version
2
2
  module OptParseValidator
3
- VERSION = '0.0.5'
3
+ VERSION = '0.0.6'
4
4
  end
@@ -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.1'
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.6'
30
- s.add_development_dependency 'rubocop', '~> 0.27'
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.5
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-01-26 00:00:00.000000000 Z
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.1'
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.1'
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.6'
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.6'
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.27'
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.27'
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