cddl 0.7.3 → 0.7.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/cddl.gemspec +1 -1
- data/lib/cbor-pp.rb +4 -0
- data/lib/cddl.rb +18 -7
- data/test/test-cddl.rb +9 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 386a3cb063acd7d41cf0add52b2350a063056213
|
4
|
+
data.tar.gz: d21891d0fd81627d7b8e935e8d739ad9f6b8f4ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78156a8375111291be6a625d8b2216a708632aeca2f2d1ad91f9bc08b4db01f5234b40191670b0a73116ae25cec5ccacaaa11253126e5de6825628a173030177
|
7
|
+
data.tar.gz: 4b1538133346cec19f7ff95f3ed2a5ef3dd00f480c7c662c16440fe63b1eedf433450815a4f8fb1ed01d093e24fd12b83f376e99b21bc073d544b05b390457af
|
data/cddl.gemspec
CHANGED
data/lib/cbor-pp.rb
CHANGED
data/lib/cddl.rb
CHANGED
@@ -570,7 +570,7 @@ module CDDL
|
|
570
570
|
def map_check(d, d_check, members)
|
571
571
|
anno = []
|
572
572
|
anno if members.all? { |r|
|
573
|
-
|
573
|
+
puts "ALL SUBRULE: #{r.inspect}" if ENV["CDDL_TRACE"]
|
574
574
|
t, s, e, k, v = r
|
575
575
|
case t
|
576
576
|
when :recurse_grpent
|
@@ -580,8 +580,10 @@ module CDDL
|
|
580
580
|
end
|
581
581
|
when :grpchoice
|
582
582
|
r[1..-1].any? {|cand|
|
583
|
+
puts "CHOICE SUBRULE: #{cand.inspect}" if ENV["CDDL_TRACE"]
|
583
584
|
cand_d_check = d_check.dup
|
584
585
|
if ann2 = map_check(d, cand_d_check, cand)
|
586
|
+
puts "CHOICE SUBRULE SUCCESS: #{cand.inspect}" if ENV["CDDL_TRACE"]
|
585
587
|
d_check.replace(cand_d_check)
|
586
588
|
anno.concat(ann2)
|
587
589
|
end
|
@@ -606,12 +608,14 @@ module CDDL
|
|
606
608
|
if occ >= s
|
607
609
|
d_check.replace(d_check1)
|
608
610
|
anno.concat(ann2)
|
609
|
-
|
611
|
+
puts "OCC SATISFIED: #{occ.inspect} >= #{s.inspect}" if ENV["CDDL_TRACE"]
|
612
|
+
anno
|
610
613
|
else
|
611
614
|
# leave some diagnostic breadcrumbs?
|
612
|
-
|
615
|
+
puts "OCC UNSATISFIED: #{occ.inspect} < #{s.inspect}" if ENV["CDDL_TRACE"]
|
616
|
+
false
|
613
617
|
end
|
614
|
-
|
618
|
+
else
|
615
619
|
# this is mostly quadratic; let's do the linear thing if possible
|
616
620
|
simple, simpleval = extract_value(k)
|
617
621
|
if simple
|
@@ -638,6 +642,7 @@ module CDDL
|
|
638
642
|
end
|
639
643
|
}
|
640
644
|
end
|
645
|
+
end
|
641
646
|
else
|
642
647
|
fail "Cannot validate #{t} in maps yet #{r}" # MMM
|
643
648
|
end
|
@@ -656,8 +661,10 @@ module CDDL
|
|
656
661
|
end
|
657
662
|
|
658
663
|
def validate1(d, where)
|
659
|
-
|
660
|
-
|
664
|
+
if ENV["CDDL_TRACE"]
|
665
|
+
puts "DATA: #{d.inspect}"
|
666
|
+
puts "RULE: #{where.inspect}"
|
667
|
+
end
|
661
668
|
# warn ["val1", d, where].inspect
|
662
669
|
@last_data = d
|
663
670
|
@last_rule = where
|
@@ -672,6 +679,10 @@ module CDDL
|
|
672
679
|
d_check = d.dup
|
673
680
|
if (ann = map_check(d, d_check, where[1..-1])) && d_check == {}
|
674
681
|
ann
|
682
|
+
else
|
683
|
+
if ENV["CDDL_TRACE"]
|
684
|
+
puts "MAP RESIDUAL: #{d_check.inspect}"
|
685
|
+
end
|
675
686
|
end
|
676
687
|
end
|
677
688
|
when :array
|
@@ -679,7 +690,7 @@ module CDDL
|
|
679
690
|
if Array === d
|
680
691
|
# validate1 against the record
|
681
692
|
idx, ann = validate_forward(d, 0, where)
|
682
|
-
ann if validate_result(idx == d.size) { "cannot complete array #{d} for #{where}" }
|
693
|
+
ann if validate_result(idx == d.size) { "#{validate_diag.inspect} -- cannot complete (#{idx}, #{d.size}) array #{d} for #{where}" }
|
683
694
|
end
|
684
695
|
when :string, :int, :float
|
685
696
|
_, v = extract_value(where)
|
data/test/test-cddl.rb
CHANGED
@@ -578,6 +578,15 @@ HERE
|
|
578
578
|
refute parser.validate_for_test([1, 5, 4, 9, 10, 3], false)
|
579
579
|
end
|
580
580
|
|
581
|
+
def test_aaaa_validate_number
|
582
|
+
parser = CDDL::Parser.new <<HERE
|
583
|
+
test = number
|
584
|
+
HERE
|
585
|
+
# pp parser.rules
|
586
|
+
assert parser.validate_for_test(1)
|
587
|
+
assert parser.validate_for_test(1.2)
|
588
|
+
end
|
589
|
+
|
581
590
|
def test_validate_number_key
|
582
591
|
parser = CDDL::Parser.new <<HERE
|
583
592
|
test = [test1, test2, test3]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cddl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carsten Bormann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cbor-diag
|