cddl 0.1.5 → 0.1.6

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
  SHA1:
3
- metadata.gz: ae990c0c1e630a5f206d115bc5ae8cbc2e5612cd
4
- data.tar.gz: 7ff78e8928e1cd3e7f60fa1086e6b055b23e39d7
3
+ metadata.gz: 3d195f7221754d19c72524ad9e7f813021ffbb06
4
+ data.tar.gz: 3db97cb441c00b2abc6a420163352243e8c89e07
5
5
  SHA512:
6
- metadata.gz: 25cb1b61914141616819edfbcfa2a7de955295a1c1863f22ed6af85700f5cc1fa9897c6cbf51a9bcd65814f927f026e389fd80c916713e07a195a2b42dbb5136
7
- data.tar.gz: 042f0f7497d609872bfce8b95da45d98a273a06092c67d2816704618497067910add06f4bf88abfa7d066cc90dff30f19ead71f43dc2ddcceb10e61b57866a23
6
+ metadata.gz: c6fe1856503d0f3b316830fc61b6b9569014981528fd5058c8390553565adf5cf7e4fb16712e4d2a47877dcb02d066ba818775d75c12121db3c41f8e63d2cb52
7
+ data.tar.gz: 84da634e9885f93badaeda4f0642163a9959ebf362b8e544189b4810076e1abf574378e6c470e4cc5b2eeeb560b251a0c1265734fd6b6de615891f39cdd10d81
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'cddl'
3
- s.version = '0.1.5'
3
+ s.version = '0.1.6'
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')
@@ -77,7 +77,14 @@ module CDDL
77
77
  when :map
78
78
  Hash[where[1..-1].flat_map {|m| generate(m, true)}]
79
79
  when :array, :grpent
80
- where[1..-1].flat_map {|m| generate(m).map{|e| e[1]}}
80
+ r = where[1..-1].flat_map {|m| generate(m).map{|e| e[1]}}
81
+ .flat_map {|e| Array === e && e[0] == :grpent ? e[1..-1] : [e]}
82
+ # nested grpents need to be "unpacked"
83
+ if where[0] == :grpent
84
+ [:grpent, *r]
85
+ else
86
+ r
87
+ end
81
88
  when :member
82
89
  s = where[1]
83
90
  e = [where[2], [s, 4].max].min # truncate to 4 unless must be more
@@ -350,6 +350,15 @@ HERE
350
350
  refute parser.validate([1, 2, 1], false)
351
351
  end
352
352
 
353
+
354
+ def test_generate_occur2 # XXX need indirection for now
355
+ parser = CDDL::Parser.new <<HERE
356
+ test = [2*2 test1 1*1 test1]
357
+ test1 = (one: 1, two: 2)
358
+ HERE
359
+ assert_equal [1, 2, 1, 2, 1, 2], parser.generate
360
+ end
361
+
353
362
  def test_validate_json_float
354
363
  parser = CDDL::Parser.new <<HERE
355
364
  test = {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cddl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann