cddl 0.7.3 → 0.7.4

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