jcrvalidator 0.6.1 → 0.6.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jcr/parser.rb +48 -27
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a0b80dde864c20a32ff286e29e11b5179b3fa935
4
- data.tar.gz: 8670787681c6b2aa7639f5c1fad552f5843f2d88
3
+ metadata.gz: c51482b079f0539c1cb4dc314bb0dac5fc5bb34b
4
+ data.tar.gz: 7aab4f0a62693d94cb6764f500b9a95558bc19c6
5
5
  SHA512:
6
- metadata.gz: 3f3da7c4224cfe32ea94f0681a8bbc39b32dd095056ebdf94ae0cc8f55b5332b212fca7b07800b992e3c6357e01876bff05b3b282f45d914194ac4e3a0788708
7
- data.tar.gz: 5cd168ff7ea72fd9671d337c4cd0830fd38e4bac75480bb4d65d7e22252186b6edf2e24576f469705483cb1dbcde127c2187c8e4c2a08c609aa5f7865f861647
6
+ metadata.gz: f0be218960533949c2f4ba48aeaede5e18d9d54a2bd9b2fc757362814f26041e869425265232eb5e22bed56accac74d245a0e11b1e68dab9aeb473dd60a8b801
7
+ data.tar.gz: 5a2aedf37cde03afd16060e05e4952107893b2ad3c1ee5e040047592b1af447a12c5218285dfa40781b68b599cda67082b83bfa526305d723c46e74a98191ffe
data/lib/jcr/parser.rb CHANGED
@@ -53,17 +53,21 @@ module JCR
53
53
  #! directive = "#" (one_line_directive / multi_line_directive)
54
54
  rule(:one_line_directive) { ( dsps? >> ( directive_def | one_line_tbd_directive_d ) >> wsp.repeat >> match('[\r\n]') ) }
55
55
  #! one_line_directive = DSPs?
56
- #! (directive_def / one_line_tbd_directive_d) *WSP eol
56
+ #! (directive_def / one_line_tbd_directive_d)
57
+ #! *WSP eol
57
58
  rule(:multi_line_directive) { str('{') >> spcCmnt? >> (directive_def | multi_line_tbd_directive_d) >> spcCmnt? >> str('}') }
58
59
  #! multi_line_directive = "{" spcCmnt?
59
- #! (directive_def / multi_line_tbd_directive_d) spcCmnt? "}"
60
+ #! ( directive_def /
61
+ #! multi_line_tbd_directive_d )
62
+ #! spcCmnt? "}"
60
63
  rule(:directive_def) { jcr_version_d | ruleset_id_d | import_d }
61
64
  #! directive_def = jcr_version_d / ruleset_id_d / import_d
62
65
  rule(:jcr_version_d) { ( str('jcr-version') >> dsps >>
63
66
  non_neg_integer.as(:major_version) >> str('.') >> non_neg_integer.as(:minor_version) >>
64
67
  ( dsps >> str('+') >> dsps? >> extension_id ).repeat
65
68
  ).as(:jcr_version_d) }
66
- #! jcr_version_d = jcr-version-kw DSPs major_version "." minor_version
69
+ #! jcr_version_d = jcr-version-kw DSPs major_version
70
+ #! "." minor_version
67
71
  #! *( DSPs "+" DSPs? extension_id )
68
72
  #> jcr-version-kw = "jcr-version"
69
73
  #! major_version = non_neg_integer
@@ -84,7 +88,8 @@ module JCR
84
88
  rule(:ruleset_id_alias) { name.as(:ruleset_id_alias) }
85
89
  #! ruleset_id_alias = name
86
90
  rule(:one_line_tbd_directive_d) { name.as(:directive_name) >> ( wsp >> match('[^\r\n]').repeat.as(:directive_parameters) ).maybe }
87
- #! one_line_tbd_directive_d = directive_name [ WSP one_line_directive_parameters ]
91
+ #! one_line_tbd_directive_d = directive_name
92
+ #! [ WSP one_line_directive_parameters ]
88
93
  #! directive_name = name
89
94
  #! one_line_directive_parameters = *not_eol
90
95
  #! not_eol = HTAB / %x20-10FFFF
@@ -97,8 +102,8 @@ module JCR
97
102
  rule(:multi_line_parameters) { (comment | q_string | regex | match('[^"/;}]')).repeat }
98
103
  #! multi_line_parameters = *(comment / q_string / regex /
99
104
  #! not_multi_line_special)
100
- #! not_multi_line_special = spaces / %x21 / %x23-2E / %x30-3A / %x3C-7C /
101
- #! %x7E-10FFFF ; not ", /, ; or }
105
+ #! not_multi_line_special = spaces / %x21 / %x23-2E / %x30-3A /
106
+ #! %x3C-7C / %x7E-10FFFF ; not ", /, ; or }
102
107
  #!
103
108
 
104
109
  rule(:root_rule) { value_rule | group_rule } # N.B. Not target_rule_name
@@ -106,13 +111,16 @@ module JCR
106
111
  #!
107
112
 
108
113
  rule(:rule) { ( annotations.as(:annotations) >> str('$') >> rule_name >> spcCmnt? >> str('=') >> spcCmnt? >> rule_def ).as(:rule) }
109
- #! rule = annotations "$" rule_name spcCmnt? "=" spcCmnt? rule_def
114
+ #! rule = annotations "$" rule_name spcCmnt?
115
+ #! "=" spcCmnt? rule_def
110
116
  #!
111
117
 
112
118
  rule(:rule_name) { name.as(:rule_name) }
113
119
  #! rule_name = name
114
120
  rule(:target_rule_name) { (annotations.as(:annotations) >> str('$') >> (ruleset_id_alias >> str('.')).maybe >> rule_name).as(:target_rule_name) }
115
- #! target_rule_name = annotations "$" [ ruleset_id_alias "." ] rule_name
121
+ #! target_rule_name = annotations "$"
122
+ #! [ ruleset_id_alias "." ]
123
+ #! rule_name
116
124
  rule(:name) { match('[a-zA-Z]') >> match('[a-zA-Z0-9\-_]').repeat }
117
125
  #! name = ALPHA *( ALPHA / DIGIT / "-" / "_" )
118
126
  #!
@@ -120,7 +128,8 @@ module JCR
120
128
  rule(:rule_def) { member_rule | (type_designator >> rule_def_type_rule) |
121
129
  array_rule | object_rule | group_rule | target_rule_name }
122
130
  #! rule_def = member_rule / type_designator rule_def_type_rule /
123
- #! array_rule / object_rule / group_rule / target_rule_name
131
+ #! array_rule / object_rule / group_rule /
132
+ #! target_rule_name
124
133
  rule(:type_designator) { str('type') >> spcCmnt.repeat(1) | str(':') >> spcCmnt? }
125
134
  #! type_designator = type-kw 1*spcCmnt / ":" spcCmnt?
126
135
  #> type-kw = "type"
@@ -145,7 +154,8 @@ module JCR
145
154
  #!
146
155
 
147
156
  rule(:annotations) { ( str('@{') >> spcCmnt? >> annotation_set >> spcCmnt? >> str('}') >> spcCmnt? ).repeat }
148
- #! annotations = *( "@{" spcCmnt? annotation_set spcCmnt? "}" spcCmnt? )
157
+ #! annotations = *( "@{" spcCmnt? annotation_set spcCmnt? "}"
158
+ #! spcCmnt? )
149
159
  rule(:annotation_set) { not_annotation | unordered_annotation | root_annotation | tbd_annotation }
150
160
  #! annotation_set = not_annotation / unordered_annotation /
151
161
  #! root_annotation / tbd_annotation
@@ -181,15 +191,16 @@ module JCR
181
191
  any
182
192
  }
183
193
  #! primitive_def = string_type / string_range / string_value /
184
- #! null_type / boolean_type / true_value / false_value /
185
- #! double_type / float_type / float_range / float_value /
194
+ #! null_type / boolean_type / true_value /
195
+ #! false_value / double_type / float_type /
196
+ #! float_range / float_value /
186
197
  #! integer_type / integer_range / integer_value /
187
- #! sized_int_type / sized_uint_type /
188
- #! ipv4_type / ipv6_type / ipaddr_type / fqdn_type / idn_type /
198
+ #! sized_int_type / sized_uint_type / ipv4_type /
199
+ #! ipv6_type / ipaddr_type / fqdn_type / idn_type /
189
200
  #! uri_range / uri_type / phone_type / email_type /
190
201
  #! datetime_type / date_type / time_type /
191
- #! hex_type / base32hex_type / base32_type / base64url_type / base64_type /
192
- #! any
202
+ #! hex_type / base32hex_type / base32_type /
203
+ #! base64url_type / base64_type / any
193
204
  rule(:null_type) { str('null').as(:null) }
194
205
  #! null_type = null-kw
195
206
  #> null-kw = "null"
@@ -229,7 +240,8 @@ module JCR
229
240
  rule(:integer_range) {
230
241
  integer.as(:integer_min) >> str('..') >> integer.maybe.as(:integer_max) | ( str('..') >> integer.as(:integer_max) )
231
242
  }
232
- #! integer_range = integer_min ".." [ integer_max ] / ".." integer_max
243
+ #! integer_range = integer_min ".." [ integer_max ] /
244
+ #! ".." integer_max
233
245
  #! integer_min = integer
234
246
  #! integer_max = integer
235
247
  rule(:integer_value) { integer.as(:integer) }
@@ -298,7 +310,8 @@ module JCR
298
310
 
299
311
  rule(:object_rule) { ( annotations >>
300
312
  str('{') >> spcCmnt? >> object_items.maybe >> spcCmnt? >> str('}') ).as(:object_rule) }
301
- #! object_rule = annotations "{" spcCmnt? [ object_items spcCmnt? ] "}"
313
+ #! object_rule = annotations "{" spcCmnt?
314
+ #! [ object_items spcCmnt? ] "}"
302
315
  rule(:object_items) { object_item >> (( spcCmnt? >> sequence_combiner >> spcCmnt? >> object_item ).repeat(1) |
303
316
  ( spcCmnt? >> choice_combiner >> spcCmnt? >> object_item ).repeat(1) ).maybe }
304
317
  #! object_items = object_item (*( sequence_combiner object_item ) /
@@ -335,7 +348,8 @@ module JCR
335
348
  rule(:group_item) { group_item_types >> spcCmnt? >> repetition.maybe }
336
349
  #! group_item = group_item_types spcCmnt? [ repetition ]
337
350
  rule(:group_item_types) { group_group | member_rule | type_rule | explicit_type_choice }
338
- #! group_item_types = group_group / member_rule / type_rule / explicit_type_choice
351
+ #! group_item_types = group_group / member_rule /
352
+ #! type_rule / explicit_type_choice
339
353
  rule(:group_group) { group_rule }
340
354
  #! group_group = group_rule
341
355
  #!
@@ -346,23 +360,28 @@ module JCR
346
360
  #! choice_combiner = spcCmnt? "|" spcCmnt?
347
361
  #!
348
362
 
349
- rule(:repetition) { str('@') >> spcCmnt? >> ( optional | one_or_more | zero_or_more |
350
- min_max_repetition | specific_repetition ) }
351
- #! repetition = "@" spcCmnt? ( optional / one_or_more / min_max_repetition /
352
- #! min_repetition / max_repetition /
353
- #! zero_or_more / specific_repetition )
363
+ rule(:repetition) { optional | one_or_more |
364
+ repetition_range | zero_or_more }
365
+ #! repetition = optional / one_or_more /
366
+ #! repetition_range / zero_or_more
354
367
  rule(:optional) { str('?').as(:optional) }
355
368
  #! optional = "?"
356
369
  rule(:one_or_more) { str('+').as(:one_or_more) >> repetition_step.maybe }
357
370
  #! one_or_more = "+" [ repetition_step ]
358
371
  rule(:zero_or_more) { str('*').as(:zero_or_more) >> repetition_step.maybe }
359
372
  #! zero_or_more = "*" [ repetition_step ]
373
+ rule(:repetition_range) { str('*') >> spcCmnt? >>
374
+ (min_max_repetition | specific_repetition) }
375
+ #! repetition_range = "*" spcCmnt? (
376
+ #! min_max_repetition / min_repetition /
377
+ #! max_repetition / specific_repetition )
360
378
  rule(:min_max_repetition) { # This includes min_only and max_only cases
361
379
  non_neg_integer.maybe.as(:repetition_min) >>
362
380
  str("..").as(:repetition_interval) >>
363
381
  non_neg_integer.maybe.as(:repetition_max) >>
364
382
  repetition_step.maybe }
365
- #! min_max_repetition = min_repeat ".." max_repeat [ repetition_step ]
383
+ #! min_max_repetition = min_repeat ".." max_repeat
384
+ #! [ repetition_step ]
366
385
  #! min_repetition = min_repeat ".." [ repetition_step ]
367
386
  #! max_repetition = ".." max_repeat [ repetition_step ]
368
387
  #! min_repeat = non_neg_integer
@@ -370,7 +389,8 @@ module JCR
370
389
  rule(:specific_repetition) { non_neg_integer.as(:specific_repetition) }
371
390
  #! specific_repetition = non_neg_integer
372
391
  rule(:repetition_step) { str('%') >> non_neg_integer.as(:repetition_step) }
373
- #! repetition_step = "%" non_neg_integer
392
+ #! repetition_step = "%" step_size
393
+ #! step_size = non_neg_integer
374
394
  #!
375
395
 
376
396
  rule(:integer) { str('0') | str('-').maybe >> pos_integer }
@@ -419,7 +439,8 @@ module JCR
419
439
  #!
420
440
 
421
441
  rule(:regex) { str('/') >> (str('\\/') | match('[^/]+')).repeat.as(:regex) >> str('/') >> regex_modifiers.maybe }
422
- #! regex = "/" *( escape "/" / not-slash ) "/" [ regex_modifiers ]
442
+ #! regex = "/" *( escape "/" / not-slash ) "/"
443
+ #! [ regex_modifiers ]
423
444
  #! not-slash = HTAB / CR / LF / %x20-2E / %x30-10FFFF
424
445
  #! ; Any char except "/"
425
446
  rule(:regex_modifiers) { match('[isx]').repeat.as(:regex_modifiers) }
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.1
4
+ version: 0.6.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: 2016-07-28 00:00:00.000000000 Z
12
+ date: 2016-08-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: parslet