cddl 0.1.5 → 0.1.6

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
  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