jcrvalidator 0.8.1 → 0.8.2

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: 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