cddl 0.7.3 → 0.7.4

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: 8059c1eece18e74a9f61203673b8e9650b90a41b
4
- data.tar.gz: 2cbd8a2ffe191c1e63b65ecd8c1274c37d916eab
3
+ metadata.gz: 386a3cb063acd7d41cf0add52b2350a063056213
4
+ data.tar.gz: d21891d0fd81627d7b8e935e8d739ad9f6b8f4ed
5
5
  SHA512:
6
- metadata.gz: 805dec239578ebd63c6d0ebd53f60bb15c7b536ed6ad7c08a796158f8046ba800557985f3995469a77ddb3c7fd89f67add4ce2c336073d87ecfa369ccbcaf654
7
- data.tar.gz: 336f8a01af37ca9b6f40f7a06ed8193fc96acfab84123537e8a552eb64a8fffcd457c6c0bddd0e5b80cc7c864bce03405f65531ecc42e682971da9cbfb4f8bf9
6
+ metadata.gz: 78156a8375111291be6a625d8b2216a708632aeca2f2d1ad91f9bc08b4db01f5234b40191670b0a73116ae25cec5ccacaaa11253126e5de6825628a173030177
7
+ data.tar.gz: 4b1538133346cec19f7ff95f3ed2a5ef3dd00f480c7c662c16440fe63b1eedf433450815a4f8fb1ed01d093e24fd12b83f376e99b21bc073d544b05b390457af
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'cddl'
3
- s.version = '0.7.3'
3
+ s.version = '0.7.4'
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')
@@ -188,6 +188,10 @@ class Hash # :nodoc:
188
188
  end
189
189
  end
190
190
 
191
+ class Float # Hmm.
192
+ prepend CBOR::PP::EqlMixin
193
+ end
194
+
191
195
  class Numeric
192
196
  prepend CBOR::PP::EqlMixin
193
197
  end
@@ -570,7 +570,7 @@ module CDDL
570
570
  def map_check(d, d_check, members)
571
571
  anno = []
572
572
  anno if members.all? { |r|
573
- # puts "SUBRULE: #{r.inspect}"
573
+ puts "ALL SUBRULE: #{r.inspect}" if ENV["CDDL_TRACE"]
574
574
  t, s, e, k, v = r
575
575
  case t
576
576
  when :recurse_grpent
@@ -580,8 +580,10 @@ module CDDL
580
580
  end
581
581
  when :grpchoice
582
582
  r[1..-1].any? {|cand|
583
+ puts "CHOICE SUBRULE: #{cand.inspect}" if ENV["CDDL_TRACE"]
583
584
  cand_d_check = d_check.dup
584
585
  if ann2 = map_check(d, cand_d_check, cand)
586
+ puts "CHOICE SUBRULE SUCCESS: #{cand.inspect}" if ENV["CDDL_TRACE"]
585
587
  d_check.replace(cand_d_check)
586
588
  anno.concat(ann2)
587
589
  end
@@ -606,12 +608,14 @@ module CDDL
606
608
  if occ >= s
607
609
  d_check.replace(d_check1)
608
610
  anno.concat(ann2)
609
- return anno
611
+ puts "OCC SATISFIED: #{occ.inspect} >= #{s.inspect}" if ENV["CDDL_TRACE"]
612
+ anno
610
613
  else
611
614
  # leave some diagnostic breadcrumbs?
612
- return false
615
+ puts "OCC UNSATISFIED: #{occ.inspect} < #{s.inspect}" if ENV["CDDL_TRACE"]
616
+ false
613
617
  end
614
- end
618
+ else
615
619
  # this is mostly quadratic; let's do the linear thing if possible
616
620
  simple, simpleval = extract_value(k)
617
621
  if simple
@@ -638,6 +642,7 @@ module CDDL
638
642
  end
639
643
  }
640
644
  end
645
+ end
641
646
  else
642
647
  fail "Cannot validate #{t} in maps yet #{r}" # MMM
643
648
  end
@@ -656,8 +661,10 @@ module CDDL
656
661
  end
657
662
 
658
663
  def validate1(d, where)
659
- # puts "DATA: #{d.inspect}"
660
- # puts "RULE: #{where.inspect}"
664
+ if ENV["CDDL_TRACE"]
665
+ puts "DATA: #{d.inspect}"
666
+ puts "RULE: #{where.inspect}"
667
+ end
661
668
  # warn ["val1", d, where].inspect
662
669
  @last_data = d
663
670
  @last_rule = where
@@ -672,6 +679,10 @@ module CDDL
672
679
  d_check = d.dup
673
680
  if (ann = map_check(d, d_check, where[1..-1])) && d_check == {}
674
681
  ann
682
+ else
683
+ if ENV["CDDL_TRACE"]
684
+ puts "MAP RESIDUAL: #{d_check.inspect}"
685
+ end
675
686
  end
676
687
  end
677
688
  when :array
@@ -679,7 +690,7 @@ module CDDL
679
690
  if Array === d
680
691
  # validate1 against the record
681
692
  idx, ann = validate_forward(d, 0, where)
682
- ann if validate_result(idx == d.size) { "cannot complete array #{d} for #{where}" }
693
+ ann if validate_result(idx == d.size) { "#{validate_diag.inspect} -- cannot complete (#{idx}, #{d.size}) array #{d} for #{where}" }
683
694
  end
684
695
  when :string, :int, :float
685
696
  _, v = extract_value(where)
@@ -578,6 +578,15 @@ HERE
578
578
  refute parser.validate_for_test([1, 5, 4, 9, 10, 3], false)
579
579
  end
580
580
 
581
+ def test_aaaa_validate_number
582
+ parser = CDDL::Parser.new <<HERE
583
+ test = number
584
+ HERE
585
+ # pp parser.rules
586
+ assert parser.validate_for_test(1)
587
+ assert parser.validate_for_test(1.2)
588
+ end
589
+
581
590
  def test_validate_number_key
582
591
  parser = CDDL::Parser.new <<HERE
583
592
  test = [test1, test2, test3]
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.7.3
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-14 00:00:00.000000000 Z
11
+ date: 2016-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cbor-diag