cddl 0.10.5 → 0.10.7

Sign up to get free protection for your applications and to get access to all the features.
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