cddl 0.10.5 → 0.10.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3b0177b945919083ba2e0595570d098809b87839cb86e823dd54c62f225ad6b
4
- data.tar.gz: 45302758ba30682f746f9b515cd293a5ac0883b2b126d6f74cd13a4911286e9e
3
+ metadata.gz: cd34ee2aa2fc9a5d0d504d0dc48222f4e94722b4e19086d4932b8bcc82980e92
4
+ data.tar.gz: b397db50185a9f899c6b3d4bc9ce63946a1f57c6989cb7cf55215eb1d6da9868
5
5
  SHA512:
6
- metadata.gz: d613c36a0b4e7e1a18c68c1a2c5df9b0c46389936fdc063465bc8c130ba470b5c6467872fd55befa47972ea8cce8362f45a2164e2ee32c02539f29bd45fb1279
7
- data.tar.gz: 6dca2e75e676eb00aba31e03671b2baf37568a2e4eb8fb0b506c8b02829efb88d6efda323891962e6ca3644be4added36482ee555bbf4d13565517c59cbaf397
6
+ metadata.gz: 96be7107033f0e3ef5da1ee747738bcd712eeb5af8230e11f128d64d0649920c8d15f5f4a13c5ccfb0ececad19dac7da1a145337f6e1a322ffe3573d7af4c689
7
+ data.tar.gz: d3edd46ef0698fde296cb18509101f98700568c942652e77e6d36abdd7a9a79e27d2fb920a3a5efc46160466feff0ecaa0ae0fda45411a94d234ed4ace037deb
data/cddl.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'cddl'
3
- s.version = '0.10.5'
3
+ s.version = '0.10.7'
4
4
  s.summary = "CDDL generator and validator."
5
5
  s.description = %{A parser, generator, and validator for CDDL}
6
6
  s.add_dependency('cbor-diag')
data/lib/cddl.rb CHANGED
@@ -438,8 +438,8 @@ module CDDL
438
438
  true
439
439
  when 22
440
440
  nil
441
- when 23
442
- :undefined
441
+ when 0..19, 23, 32..255
442
+ CBOR::Simple.new(where[2])
443
443
  when 25, 26, 27
444
444
  rand()
445
445
  end
@@ -708,7 +708,12 @@ module CDDL
708
708
  [:prim, 7, 20] => [true, false, :bool],
709
709
  [:prim, 7, 21] => [true, true, :bool],
710
710
  [:prim, 7, 22] => [true, nil, :nil],
711
- [:prim, 7, 23] => [true, :undefined, :undefined],
711
+ }
712
+ SIMPLE_VALUE_SIMPLE = Set[23] + (0..19) + (32..255)
713
+ SIMPLE_VALUE.default_proc = proc { |hash, t|
714
+ if t[0] == :prim && t[1] == 7 && SIMPLE_VALUE_SIMPLE.include?(t[2])
715
+ [true, CBOR::Simple.new(t[2]), :simple]
716
+ end
712
717
  }
713
718
 
714
719
  def extract_value(t) # []
@@ -1233,11 +1238,11 @@ module CDDL
1233
1238
  case where[2]
1234
1239
  when nil
1235
1240
  # XXX
1236
- fail
1241
+ fail [:valnil, d, where].inspect
1237
1242
  when 25, 26, 27
1238
1243
  Float === d
1239
1244
  else
1240
- fail
1245
+ fail [:val7, d, where].inspect
1241
1246
  end
1242
1247
  end
1243
1248
  else
@@ -1583,7 +1588,7 @@ module CDDL
1583
1588
  [:prim]
1584
1589
  when /\A#(\d+)/
1585
1590
  maj = $1.to_i
1586
- s = [:prim, maj]
1591
+ s = [:prim, maj, *n.children(:uint).map(&:to_s).map(&:to_i)]
1587
1592
  if tn = n.tagnumber
1588
1593
  if ui = tn.uint
1589
1594
  s << ui.to_s.to_i
@@ -0,0 +1,7 @@
1
+ start = [a, e, b, c, d]
2
+ a = false
3
+ e = undefined
4
+ b = float32
5
+ ; c = #7.32
6
+ c = #6.<12>(3)
7
+ d = #6.13(4)
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.10.5
4
+ version: 0.10.7
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-01-14 00:00:00.000000000 Z
11
+ date: 2024-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cbor-diag
@@ -235,6 +235,7 @@ files:
235
235
  - test-data/oidbat.cddl
236
236
  - test-data/patch1.cddl
237
237
  - test-data/plus.cddl
238
+ - test-data/prim.cddl
238
239
  - test-data/printf.cddl
239
240
  - test-data/printf0.cddl
240
241
  - test-data/printf1.cddl