cddl 0.8.12 → 0.8.13
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/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
|