jcrvalidator 0.6.2 → 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jcr/check_groups.rb +1 -1
- data/lib/jcr/evaluate_array_rules.rb +4 -4
- data/lib/jcr/evaluate_group_rules.rb +1 -1
- data/lib/jcr/evaluate_member_rules.rb +1 -1
- data/lib/jcr/evaluate_object_rules.rb +3 -3
- data/lib/jcr/evaluate_rules.rb +5 -2
- data/lib/jcr/evaluate_value_rules.rb +18 -14
- data/lib/jcr/find_roots.rb +1 -1
- data/lib/jcr/jcr.rb +5 -1
- data/lib/jcr/map_rule_names.rb +1 -1
- data/lib/jcr/parser.rb +5 -8
- data/lib/jcr/process_directives.rb +1 -1
- data/lib/jcr/version.rb +20 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b2351b0c65ef5e3bbe3878b08b0358319a4ad75
|
4
|
+
data.tar.gz: 670ebcfdeb3ff7ee1d921a7c90c0f5767991d329
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0fa7a5e9d18418e33b211a963c241db5cd0a81eb8ab2fb58732e524e500037846c67dc0fbff650c09a2a41344c9776c802e91598917ca91b26325acdac3c252d
|
7
|
+
data.tar.gz: d9ccd993fc2d950e5954771afb82e05be924deecb81bcd1c675db37236e07cde471cdefac604f31da4b71f67cb811bf57f00441c39557616b15cf166a955c29d
|
data/lib/jcr/check_groups.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2015 American Registry for Internet Numbers
|
1
|
+
# Copyright (c) 2015-2016 American Registry for Internet Numbers
|
2
2
|
#
|
3
3
|
# Permission to use, copy, modify, and/or distribute this software for any
|
4
4
|
# purpose with or without fee is hereby granted, provided that the above
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2015 American Registry for Internet Numbers
|
1
|
+
# Copyright (c) 2015-2016 American Registry for Internet Numbers
|
2
2
|
#
|
3
3
|
# Permission to use, copy, modify, and/or distribute this software for any
|
4
4
|
# purpose with or without fee is hereby granted, provided that the above
|
@@ -178,7 +178,7 @@ module JCR
|
|
178
178
|
|
179
179
|
end # end if grule else
|
180
180
|
|
181
|
-
if repeat_step && array_index % repeat_step != 0
|
181
|
+
if repeat_step && ( array_index - repeat_min ) % repeat_step != 0
|
182
182
|
retval = Evaluation.new( false, "Matches (#{array_index }) do not meat repetition step for #{repeat_max} % #{repeat_step}")
|
183
183
|
end
|
184
184
|
|
@@ -241,7 +241,7 @@ module JCR
|
|
241
241
|
retval = Evaluation.new( false, "array does not have enough #{rule} for #{raised_rule(jcr,rule_atom)}")
|
242
242
|
elsif successes > repeat_max
|
243
243
|
retval = Evaluation.new( false, "array has too many #{rule} for #{raised_rule(jcr,rule_atom)}")
|
244
|
-
elsif repeat_step && successes % repeat_step != 0
|
244
|
+
elsif repeat_step && ( successes - repeat_min ) % repeat_step != 0
|
245
245
|
retval = Evaluation.new( false, "array matches (#{successes}) do not meet repetition step of #{repeat_max} % #{repeat_step} with #{rule} for #{raised_rule(jcr,rule_atom)}")
|
246
246
|
else
|
247
247
|
retval = Evaluation.new( true, nil )
|
@@ -268,7 +268,7 @@ module JCR
|
|
268
268
|
retval = Evaluation.new( false, "array does not have enough #{rule} for #{raised_rule(jcr,rule_atom)}")
|
269
269
|
elsif successes > repeat_max
|
270
270
|
retval = Evaluation.new( false, "array has too many #{rule} for #{raised_rule(jcr,rule_atom)}")
|
271
|
-
elsif repeat_step && successes % repeat_step != 0
|
271
|
+
elsif repeat_step && ( successes - repeat_min ) % repeat_step != 0
|
272
272
|
retval = Evaluation.new( false, "array matches (#{successes}) do not meet repetition step of #{repeat_max} % #{repeat_step} with #{rule} for #{raised_rule(jcr,rule_atom)}")
|
273
273
|
else
|
274
274
|
retval = Evaluation.new( true, nil)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2015 American Registry for Internet Numbers
|
1
|
+
# Copyright (c) 2015-2016 American Registry for Internet Numbers
|
2
2
|
#
|
3
3
|
# Permission to use, copy, modify, and/or distribute this software for any
|
4
4
|
# purpose with or without fee is hereby granted, provided that the above
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2015 American Registry for Internet Numbers
|
1
|
+
# Copyright (c) 2015-2016 American Registry for Internet Numbers
|
2
2
|
#
|
3
3
|
# Permission to use, copy, modify, and/or distribute this software for any
|
4
4
|
# purpose with or without fee is hereby granted, provided that the above
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2015 American Registry for Internet Numbers
|
1
|
+
# Copyright (c) 2015-2016 American Registry for Internet Numbers
|
2
2
|
#
|
3
3
|
# Permission to use, copy, modify, and/or distribute this software for any
|
4
4
|
# purpose with or without fee is hereby granted, provided that the above
|
@@ -95,7 +95,7 @@ module JCR
|
|
95
95
|
retval = Evaluation.new( false, "object does not contain group #{rule} for #{raised_rule(jcr,rule_atom)}")
|
96
96
|
elsif successes < repeat_min
|
97
97
|
retval = Evaluation.new( false, "object does not have contain necessary number of group #{rule} for #{raised_rule(jcr,rule_atom)}")
|
98
|
-
elsif repeat_step && successes % repeat_step != 0
|
98
|
+
elsif repeat_step && ( successes - repeat_min ) % repeat_step != 0
|
99
99
|
retval = Evaluation.new( false, "object matches (#{successes}) do not have contain repetition #{repeat_max} % #{repeat_step} of group #{rule} for #{raised_rule(jcr,rule_atom)}")
|
100
100
|
else
|
101
101
|
retval = Evaluation.new( true, nil )
|
@@ -160,7 +160,7 @@ module JCR
|
|
160
160
|
retval = Evaluation.new( false, "object does not have enough #{rule} for #{raised_rule(jcr,rule_atom)}")
|
161
161
|
elsif repeat_results.length > repeat_max
|
162
162
|
retval = Evaluation.new( false, "object has too many #{rule} for #{raised_rule(jcr,rule_atom)}")
|
163
|
-
elsif repeat_step && repeat_results.length % repeat_step != 0
|
163
|
+
elsif repeat_step && ( repeat_results.length - repeat_min ) % repeat_step != 0
|
164
164
|
retval = Evaluation.new( false, "object matches (#{repeat_results.length}) does not match repetition step of #{repeat_max} & #{repeat_step} for #{rule} for #{raised_rule(jcr,rule_atom)}")
|
165
165
|
else
|
166
166
|
retval = Evaluation.new( true, nil)
|
data/lib/jcr/evaluate_rules.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2015 American Registry for Internet Numbers
|
1
|
+
# Copyright (c) 2015-2016 American Registry for Internet Numbers
|
2
2
|
#
|
3
3
|
# Permission to use, copy, modify, and/or distribute this software for any
|
4
4
|
# purpose with or without fee is hereby granted, provided that the above
|
@@ -141,7 +141,10 @@ module JCR
|
|
141
141
|
elsif rule[:one_or_more]
|
142
142
|
repeat_min = 1
|
143
143
|
repeat_max = Float::INFINITY
|
144
|
-
|
144
|
+
if rule[:repetition_step]
|
145
|
+
repeat_step = rule[:repetition_step].to_s.to_i
|
146
|
+
repeat_min = repeat_step
|
147
|
+
end
|
145
148
|
elsif rule[:zero_or_more]
|
146
149
|
repeat_min = 0
|
147
150
|
repeat_max = Float::INFINITY
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2015 American Registry for Internet Numbers
|
1
|
+
# Copyright (c) 2015-2016 American Registry for Internet Numbers
|
2
2
|
#
|
3
3
|
# Permission to use, copy, modify, and/or distribute this software for any
|
4
4
|
# purpose with or without fee is hereby granted, provided that the above
|
@@ -64,7 +64,7 @@ module JCR
|
|
64
64
|
return bad_value( jcr, rule_atom, "integer", data ) unless data.is_a?( Fixnum )
|
65
65
|
min = jcr[:integer_min].to_s.to_i
|
66
66
|
return bad_value( jcr, rule_atom, min, data ) unless data >= min
|
67
|
-
when jcr[:
|
67
|
+
when jcr[:integer_min] == nil && jcr[:integer_max] != nil
|
68
68
|
return bad_value( jcr, rule_atom, "integer", data ) unless data.is_a?( Fixnum )
|
69
69
|
max = jcr[:integer_max].to_s.to_i
|
70
70
|
return bad_value( jcr, rule_atom, max, data ) unless data <= max
|
@@ -223,13 +223,15 @@ module JCR
|
|
223
223
|
#
|
224
224
|
|
225
225
|
when jcr[:uri]
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
226
|
+
if jcr[:uri].is_a? Hash
|
227
|
+
t = jcr[:uri][:uri_scheme].to_s
|
228
|
+
return bad_value( jcr, rule_atom, t, data ) unless data.is_a? String
|
229
|
+
return bad_value( jcr, rule_atom, t, data ) unless data.start_with?( t )
|
230
|
+
else
|
231
|
+
return bad_value( jcr, rule_atom, "URI", data ) unless data.is_a?( String )
|
232
|
+
uri = Addressable::URI.parse( data )
|
233
|
+
return bad_value( jcr, rule_atom, "URI", data ) unless uri.is_a?( Addressable::URI )
|
234
|
+
end
|
233
235
|
|
234
236
|
#
|
235
237
|
# phone and email value rules
|
@@ -467,9 +469,11 @@ module JCR
|
|
467
469
|
retval = "idn"
|
468
470
|
|
469
471
|
when rule[:uri]
|
470
|
-
|
471
|
-
|
472
|
-
|
472
|
+
if rule[:uri].is_a? Hash
|
473
|
+
retval = "URI with specific scheme #{rule[:uri][:uri_scheme].to_s}"
|
474
|
+
else
|
475
|
+
retval = "URI"
|
476
|
+
end
|
473
477
|
|
474
478
|
when rule[:email]
|
475
479
|
retval = "email"
|
@@ -479,8 +483,8 @@ module JCR
|
|
479
483
|
|
480
484
|
when rule[:hex]
|
481
485
|
retval = "hex"
|
482
|
-
when rule[:
|
483
|
-
retval = "
|
486
|
+
when rule[:base32hex]
|
487
|
+
retval = "base32hex"
|
484
488
|
when rule[:base64url]
|
485
489
|
retval = "base64url"
|
486
490
|
when rule[:base64]
|
data/lib/jcr/find_roots.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2015 American Registry for Internet Numbers
|
1
|
+
# Copyright (c) 2015-2016 American Registry for Internet Numbers
|
2
2
|
#
|
3
3
|
# Permission to use, copy, modify, and/or distribute this software for any
|
4
4
|
# purpose with or without fee is hereby granted, provided that the above
|
data/lib/jcr/jcr.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2015 American Registry for Internet Numbers
|
1
|
+
# Copyright (c) 2015-2016 American Registry for Internet Numbers
|
2
2
|
#
|
3
3
|
# Permission to use, copy, modify, and/or distribute this software for any
|
4
4
|
# purpose with or without fee is hereby granted, provided that the above
|
@@ -23,6 +23,7 @@ require 'jcr/check_groups'
|
|
23
23
|
require 'jcr/find_roots'
|
24
24
|
require 'jcr/map_rule_names'
|
25
25
|
require 'jcr/process_directives'
|
26
|
+
require 'jcr/version'
|
26
27
|
|
27
28
|
module JCR
|
28
29
|
|
@@ -214,6 +215,9 @@ module JCR
|
|
214
215
|
opt.separator " 1 = parsing or other bad condition"
|
215
216
|
opt.separator " 2 = fall through bad condition"
|
216
217
|
opt.separator " 3 = unsuccessful evaluation of JSON"
|
218
|
+
|
219
|
+
opt.separator ""
|
220
|
+
opt.separator "JCR Version " + JCR::VERSION
|
217
221
|
end
|
218
222
|
|
219
223
|
opt_parser.parse! my_argv
|
data/lib/jcr/map_rule_names.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2015 American Registry for Internet Numbers
|
1
|
+
# Copyright (c) 2015-2016 American Registry for Internet Numbers
|
2
2
|
#
|
3
3
|
# Permission to use, copy, modify, and/or distribute this software for any
|
4
4
|
# purpose with or without fee is hereby granted, provided that the above
|
data/lib/jcr/parser.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2014
|
1
|
+
# Copyright (C) 2014-2016 American Registry for Internet Numbers (ARIN)
|
2
2
|
#
|
3
3
|
# Permission to use, copy, modify, and/or distribute this software for any
|
4
4
|
# purpose with or without fee is hereby granted, provided that the above
|
@@ -185,7 +185,7 @@ module JCR
|
|
185
185
|
integer_type | integer_range | integer_value |
|
186
186
|
sized_int_type | sized_uint_type |
|
187
187
|
ipv4_type | ipv6_type | ipaddr_type | fqdn_type | idn_type |
|
188
|
-
|
188
|
+
uri_type | phone_type | email_type |
|
189
189
|
datetime_type | date_type | time_type |
|
190
190
|
hex_type | base32hex_type | base32_type | base64url_type | base64_type |
|
191
191
|
any
|
@@ -197,7 +197,7 @@ module JCR
|
|
197
197
|
#! integer_type / integer_range / integer_value /
|
198
198
|
#! sized_int_type / sized_uint_type / ipv4_type /
|
199
199
|
#! ipv6_type / ipaddr_type / fqdn_type / idn_type /
|
200
|
-
#!
|
200
|
+
#! uri_type / phone_type / email_type /
|
201
201
|
#! datetime_type / date_type / time_type /
|
202
202
|
#! hex_type / base32hex_type / base32_type /
|
203
203
|
#! base64url_type / base64_type / any
|
@@ -267,11 +267,8 @@ module JCR
|
|
267
267
|
rule(:idn_type) { str('idn').as(:idn) }
|
268
268
|
#! idn_type = idn-kw
|
269
269
|
#> idn-kw = "idn"
|
270
|
-
rule(:
|
271
|
-
#!
|
272
|
-
#> uri-dotdot-kw = "uri.."
|
273
|
-
rule(:uri_type) { str('uri').as(:uri) }
|
274
|
-
#! uri_type = uri-kw
|
270
|
+
rule(:uri_type) { (str('uri') >> ( str("..") >> uri_scheme ).maybe).as(:uri) }
|
271
|
+
#! uri_type = uri-kw [ ".." uri-scheme ]
|
275
272
|
#> uri-kw = "uri"
|
276
273
|
rule(:phone_type) { str('phone').as(:phone) }
|
277
274
|
#! phone_type = phone-kw
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2015 American Registry for Internet Numbers
|
1
|
+
# Copyright (c) 2015-2016 American Registry for Internet Numbers
|
2
2
|
#
|
3
3
|
# Permission to use, copy, modify, and/or distribute this software for any
|
4
4
|
# purpose with or without fee is hereby granted, provided that the above
|
data/lib/jcr/version.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# Copyright (c) 2016 American Registry for Internet Numbers
|
2
|
+
#
|
3
|
+
# Permission to use, copy, modify, and/or distribute this software for any
|
4
|
+
# purpose with or without fee is hereby granted, provided that the above
|
5
|
+
# copyright notice and this permission notice appear in all copies.
|
6
|
+
#
|
7
|
+
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
8
|
+
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
9
|
+
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
10
|
+
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
11
|
+
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
12
|
+
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
13
|
+
# IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
14
|
+
|
15
|
+
|
16
|
+
module JCR
|
17
|
+
|
18
|
+
VERSION = "0.6.4"
|
19
|
+
|
20
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jcrvalidator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Newton
|
@@ -89,6 +89,7 @@ files:
|
|
89
89
|
- lib/jcr/map_rule_names.rb
|
90
90
|
- lib/jcr/parser.rb
|
91
91
|
- lib/jcr/process_directives.rb
|
92
|
+
- lib/jcr/version.rb
|
92
93
|
homepage: https://github.com/arineng/jcrvalidator
|
93
94
|
licenses:
|
94
95
|
- ISC
|