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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e15f3d872870b687c53a8cf98ab6668afec8c3c5
4
- data.tar.gz: 01250f5fe01fe29a8025f6aac9da8c83766df494
3
+ metadata.gz: 1e0ce8e0beaae3b56921ab98051cacb83723a621
4
+ data.tar.gz: 37b9cf7bb6c35389f565ef1848fff7d84b768e08
5
5
  SHA512:
6
- metadata.gz: 6218f0d7f612b32759383f0869e39bbaf04850cdaf12cd4400796b164e745da40ffc371d9f564abd4e0135417805b5794c0c94af68f7282cb5c8284d3910e3fb
7
- data.tar.gz: 4c1aebcccc76bd2806ca98d9d7e582e3353eda4c07a2fc1fb915a5ffcf192172b2ce04015046bfca5f566e0fa67a789164aa68421b90b3f3aee8df28e41fcc8d
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
@@ -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
@@ -15,6 +15,6 @@
15
15
 
16
16
  module JCR
17
17
 
18
- VERSION = "0.8.1"
18
+ VERSION = "0.8.2"
19
19
 
20
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.8.1
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-17 00:00:00.000000000 Z
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.5.2
114
+ rubygems_version: 2.6.11
115
115
  signing_key:
116
116
  specification_version: 4
117
117
  summary: JCR Validator