cddl 0.12.1 → 0.12.3
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/bin/cddl +16 -6
- data/cddl.gemspec +1 -1
- data/data/cddl.abnf +1 -1
- data/test-data/valemb.cddl +16 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b43f61521d3730b97b25f84b2d978fad5ee52034a4e106f524c90c2457c1f6f3
|
4
|
+
data.tar.gz: b0750334302b1feabc654b5d69ea0feedf969997f403ab7fd96db0eb76213b6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e96654b3760ed3a0b104f64b9f6f431b562a6ce1c40d4df887af646e6fe906f879c8fccf24ff5fb0090e3e5daefcd22e22290cee9dc87802fc7581c7e4257dd
|
7
|
+
data.tar.gz: ad3fb0fc1c243463575274678efeb2ee28c54303bc0db07e146e0742d77800af41d159683885c6d90d84a2f94685c4443a237cb31406bd8e3f513c3367e05af1
|
data/bin/cddl
CHANGED
@@ -22,6 +22,13 @@ def usage
|
|
22
22
|
exit EX_USAGE
|
23
23
|
end
|
24
24
|
|
25
|
+
def utfify(s)
|
26
|
+
s.force_encoding(Encoding::UTF_8).scrub { |c|
|
27
|
+
warn "*** replaced invalid UTF-8 byte sequence #{c.inspect} by U+FFFD REPLACEMENT CHARACTER"
|
28
|
+
0xFFFD.chr(Encoding::UTF_8)
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
25
32
|
def read_arg(arg, remember_fn = true)
|
26
33
|
if arg == "-"
|
27
34
|
$fn = "(stdin)" if remember_fn
|
@@ -29,15 +36,12 @@ def read_arg(arg, remember_fn = true)
|
|
29
36
|
else
|
30
37
|
usage unless arg
|
31
38
|
$fn = arg if remember_fn
|
32
|
-
File.read(arg, mode: "rb")
|
33
|
-
warn "*** replaced invalid UTF-8 byte sequence #{c.inspect} by U+FFFD REPLACEMENT CHARACTER"
|
34
|
-
0xFFFD.chr(Encoding::UTF_8)
|
35
|
-
}
|
39
|
+
File.read(arg, mode: "rb")
|
36
40
|
end
|
37
41
|
end
|
38
42
|
|
39
43
|
def parser
|
40
|
-
@parser ||= CDDL::Parser.new(read_arg(ARGV[0], false))
|
44
|
+
@parser ||= CDDL::Parser.new(utfify(read_arg(ARGV[0], false)))
|
41
45
|
end
|
42
46
|
|
43
47
|
def my_pp(v)
|
@@ -102,7 +106,12 @@ begin
|
|
102
106
|
instance = if $sequence
|
103
107
|
CBOR.decode("\x9f".b << instance.b << "\xff".b)
|
104
108
|
else
|
105
|
-
|
109
|
+
begin
|
110
|
+
CBOR.decode(instance.b)
|
111
|
+
rescue => e
|
112
|
+
warn e.inspect if verbose
|
113
|
+
JSON.load(utfify(instance))
|
114
|
+
end
|
106
115
|
end
|
107
116
|
instance = instance.cbor_clone if $annotate && ENV["EXPERIMENTAL_ANNOTATE"]
|
108
117
|
warn "#{fn}:" if verbose
|
@@ -110,6 +119,7 @@ begin
|
|
110
119
|
# my_pp ann
|
111
120
|
instance.cbor_add_annotations_from(ann) rescue nil
|
112
121
|
my_diag(instance) if $annotate
|
122
|
+
warn "ann: #{!!ann}" if verbose
|
113
123
|
unless ann
|
114
124
|
retcode = 1
|
115
125
|
end
|
data/cddl.gemspec
CHANGED
data/data/cddl.abnf
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
cwt = [
|
2
|
+
bstr .cbor protected-map,
|
3
|
+
unprotected-map,
|
4
|
+
bstr .cbor payload-map,
|
5
|
+
bstr ; signature
|
6
|
+
]
|
7
|
+
|
8
|
+
protected-map = {
|
9
|
+
&(alg: 1) => int,
|
10
|
+
? &(typ: 16) => text,
|
11
|
+
* key => any
|
12
|
+
}
|
13
|
+
|
14
|
+
unprotected-map = ()
|
15
|
+
key = "key"
|
16
|
+
payload-map = { payload: "map"}
|
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.12.
|
4
|
+
version: 0.12.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carsten Bormann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cbor-diag
|
@@ -263,6 +263,7 @@ files:
|
|
263
263
|
- test-data/toerless0.cddl
|
264
264
|
- test-data/toerless1.cddl
|
265
265
|
- test-data/two_anonymous_groups.cddl
|
266
|
+
- test-data/valemb.cddl
|
266
267
|
- test-data/wrong1.cddl
|
267
268
|
- test-data/wrong1a.cddl
|
268
269
|
- test-data/wrong2.cddl
|
@@ -290,7 +291,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
290
291
|
- !ruby/object:Gem::Version
|
291
292
|
version: '0'
|
292
293
|
requirements: []
|
293
|
-
rubygems_version: 3.5.
|
294
|
+
rubygems_version: 3.5.11
|
294
295
|
signing_key:
|
295
296
|
specification_version: 4
|
296
297
|
summary: CDDL generator and validator.
|