cddl 0.8.12 → 0.8.13
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/cddl.rb +23 -1
- data/test-data/feature-detail.cddl +5 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bbd414d9d4fbc897f8f31c03437fa57155547c0f02978de2da4f75844cf0e1ef
|
4
|
+
data.tar.gz: 9aa239d57c5e70f8352da90cc8023273a2793577df84ee6e003a1ac0fdc200dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 00dac4c95e0b94e0bc3ae775b1bf1ab33a41507bb06774ccaa0838daf6c9fffc0c2d4b3d049199c3ae35858888be853058248c710ea056edd718a0938fd7d8e3
|
7
|
+
data.tar.gz: 18ea8731c6ab8ec9ae547331be276b9ca1c58c490c6986969824a0a56c7870478ca01418f8ae83a5504d393c14e9fcc5764bfc0cb65c7f2f267cd1757dfbdbac
|
data/cddl.gemspec
CHANGED
data/lib/cddl.rb
CHANGED
@@ -547,6 +547,16 @@ module CDDL
|
|
547
547
|
end
|
548
548
|
end
|
549
549
|
|
550
|
+
def extract_array(t)
|
551
|
+
return [false] unless t[0] == :array
|
552
|
+
[true, *t[1..-1].map { |el|
|
553
|
+
return [false] unless el[0..3] == [:member, 1, 1, nil]
|
554
|
+
ok, v, vt = extract_value(el[4])
|
555
|
+
return [false] unless ok
|
556
|
+
[v, vt]
|
557
|
+
}]
|
558
|
+
end
|
559
|
+
|
550
560
|
def validate_diag
|
551
561
|
[@last_data, @last_rule, @last_message]
|
552
562
|
end
|
@@ -806,7 +816,19 @@ module CDDL
|
|
806
816
|
ann
|
807
817
|
when :feature
|
808
818
|
ok, v, vt = extract_value(control)
|
809
|
-
|
819
|
+
if ok
|
820
|
+
nm = v
|
821
|
+
det = d
|
822
|
+
else
|
823
|
+
ok, *v = extract_array(control)
|
824
|
+
if ok && v.size == 2
|
825
|
+
nm = v[0][0]
|
826
|
+
det = v[1][0]
|
827
|
+
else
|
828
|
+
warn "*** feature controller not implemented: #{control.inspect}"
|
829
|
+
end
|
830
|
+
end
|
831
|
+
$features[nm][det] = true
|
810
832
|
ann
|
811
833
|
when :lt, :le, :gt, :ge, :eq, :ne
|
812
834
|
op = OPERATORS[where[1]]
|
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.8.
|
4
|
+
version: 0.8.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carsten Bormann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cbor-diag
|
@@ -118,6 +118,7 @@ files:
|
|
118
118
|
- test-data/dotsize.cddl
|
119
119
|
- test-data/extractor-demo.cddl
|
120
120
|
- test-data/feat1.cddl
|
121
|
+
- test-data/feature-detail.cddl
|
121
122
|
- test-data/foo.cddl
|
122
123
|
- test-data/grasp-01-extract.cddl
|
123
124
|
- test-data/grasp-01-test.cddl
|