cddl 0.7.3 → 0.7.4
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 +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
|