jcrvalidator 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jcr/evaluate_array_rules.rb +2 -2
- data/lib/jcr/evaluate_object_rules.rb +5 -0
- data/lib/jcr/evaluate_rules.rb +1 -0
- data/lib/jcr/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e0ce8e0beaae3b56921ab98051cacb83723a621
|
4
|
+
data.tar.gz: 37b9cf7bb6c35389f565ef1848fff7d84b768e08
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '078d9e3c1d59b82fa9b0aef8da7724900d49acb941aac381e4b73b760d83a9684ccd70eaa7ebfa9a7086545c09c9a8a54a4cf1b210c6c6f5d44f7512389898bd'
|
7
|
+
data.tar.gz: ed65f15f0b346a285fc2a4da36df771f43c4450b18ff2419fdc4e8baaebc5041151dfa96ec73de7120324d2c3256569f45a4449c632a04285a9172328ebc29da
|
@@ -265,7 +265,7 @@ module JCR
|
|
265
265
|
else # else not group rule
|
266
266
|
|
267
267
|
successes = 0
|
268
|
-
for i in behavior.last_index..data.length
|
268
|
+
for i in behavior.last_index..data.length-1
|
269
269
|
break if successes == repeat_max
|
270
270
|
unless behavior.checked_hash[ i ]
|
271
271
|
e = evaluate_rule( rule, rule_atom, data[ i ], econs, nil )
|
@@ -296,7 +296,7 @@ module JCR
|
|
296
296
|
behavior.last_index = highest_index
|
297
297
|
|
298
298
|
if data.length > behavior.checked_hash.length && behavior.extra_prohibited
|
299
|
-
retval = Evaluation.new( false, "More items in array than specified for #{raised_rule(jcr,rule_atom)}" )
|
299
|
+
retval = Evaluation.new( false, "More items in array #{data.length} than specified #{behavior.checked_hash.length} for #{raised_rule(jcr,rule_atom)}" )
|
300
300
|
end
|
301
301
|
|
302
302
|
return retval
|
@@ -116,6 +116,7 @@ module JCR
|
|
116
116
|
else # if not grule
|
117
117
|
|
118
118
|
repeat_results = nil
|
119
|
+
member_found = false
|
119
120
|
|
120
121
|
# do a little lookahead for member rules defined by names
|
121
122
|
# if defined by a name, and not a regex, just pluck it from the object
|
@@ -132,6 +133,7 @@ module JCR
|
|
132
133
|
unless behavior.checked_hash[k]
|
133
134
|
e = evaluate_rule(rule, rule_atom, [k, v], econs, nil, nil)
|
134
135
|
behavior.checked_hash[k] = e.success
|
136
|
+
member_found = true if e.member_found
|
135
137
|
repeat_results[ k ] = v if e.success
|
136
138
|
end
|
137
139
|
else
|
@@ -153,6 +155,7 @@ module JCR
|
|
153
155
|
behavior.checked_hash[k] = e.success
|
154
156
|
i = i + 1 if e.success
|
155
157
|
found = true if e.member_found
|
158
|
+
member_found = true if e.member_found
|
156
159
|
e.success
|
157
160
|
end
|
158
161
|
end
|
@@ -174,6 +177,8 @@ module JCR
|
|
174
177
|
retval = Evaluation.new( false, "object has too many #{jcr_to_s(rule)} for #{raised_rule(jcr,rule_atom)}")
|
175
178
|
elsif repeat_step && ( repeat_results.length - repeat_min ) % repeat_step != 0
|
176
179
|
retval = Evaluation.new( false, "object matches (#{repeat_results.length}) does not match repetition step of #{repeat_max} & #{repeat_step} for #{jcr_to_s(rule)} for #{raised_rule(jcr,rule_atom)}")
|
180
|
+
elsif member_found && repeat_results.length == 0 && repeat_max > 0
|
181
|
+
retval = Evaluation.new( false, "object contains #{jcr_to_s(rule)} with member name though incorrect value for #{raised_rule(jcr,rule_atom)}")
|
177
182
|
else
|
178
183
|
retval = Evaluation.new( true, nil)
|
179
184
|
end
|
data/lib/jcr/evaluate_rules.rb
CHANGED
@@ -98,6 +98,7 @@ module JCR
|
|
98
98
|
end
|
99
99
|
|
100
100
|
def self.evaluate_rule jcr, rule_atom, data, econs, behavior = nil, target_annotations = nil
|
101
|
+
trace( econs, "Dispatching rule for #{jcr_to_s(jcr)} with data: #{data}")
|
101
102
|
if jcr.is_a?( Hash )
|
102
103
|
if jcr[:rule_name]
|
103
104
|
rn = slice_to_s( jcr[:rule_name] )
|
data/lib/jcr/version.rb
CHANGED
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.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Newton
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-12-
|
12
|
+
date: 2017-12-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: parslet
|
@@ -111,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
111
|
version: '0'
|
112
112
|
requirements: []
|
113
113
|
rubyforge_project:
|
114
|
-
rubygems_version: 2.
|
114
|
+
rubygems_version: 2.6.11
|
115
115
|
signing_key:
|
116
116
|
specification_version: 4
|
117
117
|
summary: JCR Validator
|