jcrvalidator 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
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