cddl 0.1.9 → 0.2.0

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/cddl.gemspec +2 -1
  3. data/lib/cddl.rb +14 -3
  4. metadata +16 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fe3ed839df42c1fd6b07c8b4ddb8e89173d7aad7
4
- data.tar.gz: 181bc6679b13f2d6d3bb1e83956ce319d7e78b0e
3
+ metadata.gz: de407896d680d320c446c027731247c60a315a97
4
+ data.tar.gz: eae775c3385f92d9fde90bca5c6daa758f4c1683
5
5
  SHA512:
6
- metadata.gz: 0df738339807fd13719e6fe7ba06a382b8179eace4f9f21a7a1956800ac7004a47f52d79b93055a409a7e205f6d3b5d3b99a1cf05bfef1eda6b5b96b41cd340f
7
- data.tar.gz: 960d722af0ad43719aff06482a6b795f9b958379aa918a243ac2b52e94c46cfb0299a041d8b85e1d92fadc7ae9c15bbb02e03e3b37dc6656c0ba5b4ce499b419
6
+ metadata.gz: 45ca44b99561f01a106f615827392d83c509f43fba5cb2384c80aae133e15c611ffa487bd6109db0b18fd90bc0c6a14c233f6e81c3a266fed136234cb7424783
7
+ data.tar.gz: 8477bb82d3ec84c50d901c90f5af53f7f5431904fcdfe048f7d7f864835948cc9778ef87b0813815dbaff2d5b49d3f1979d2424b389915b49dccb3d36fd099e3
@@ -1,11 +1,12 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'cddl'
3
- s.version = '0.1.9'
3
+ s.version = '0.2.0'
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')
7
7
  s.add_dependency('abnc')
8
8
  s.add_dependency('json')
9
+ s.add_dependency('regexp-examples')
9
10
  s.files = `git ls-files`.split("\n").grep(/^[a-z]/)
10
11
  s.files = Dir['lib/**/*.rb'] + %w(cddl.gemspec) + Dir['data/**/*.abnf'] + Dir['data/**/*.cddl'] + Dir['test-data/**/*.cddl'] + Dir['test/**/*.rb']
11
12
  s.require_path = 'lib'
@@ -2,6 +2,7 @@ require 'abnc'
2
2
  require 'pp'
3
3
  require 'pathname'
4
4
  require 'cbor-pure'
5
+ require 'regexp-examples'
5
6
 
6
7
  module CDDL
7
8
 
@@ -84,6 +85,16 @@ module CDDL
84
85
  result
85
86
  end
86
87
 
88
+ # Memoize a bit here
89
+
90
+ REGEXP_FOR_STRING = Hash.new {|h, k|
91
+ h[k] = Regexp.new("\\A#{k}\\z")
92
+ }
93
+
94
+ REGEXP_EXAMPLES = Hash.new {|h, k|
95
+ h[k] = REGEXP_FOR_STRING[k].examples
96
+ }
97
+
87
98
  def generate(where=rules, inmap = false)
88
99
  case where[0]
89
100
  when :type1
@@ -177,7 +188,7 @@ module CDDL
177
188
  unless target == [:prim, 3] && String === regexp
178
189
  fail "Don't know yet how to generate #{where}"
179
190
  end
180
- "regexp /#{regexp}/ punt for now"
191
+ REGEXP_EXAMPLES[regexp].sample
181
192
  else
182
193
  fail "Don't know yet how to generate from #{where}"
183
194
  end
@@ -325,13 +336,13 @@ module CDDL
325
336
  if String === d
326
337
  ok, v, vt = extract_value(control)
327
338
  if ok && vt == String
328
- re = Regexp.new("\\A#{v}\\z")
339
+ re = REGEXP_FOR_STRING[v]
329
340
  # pp re
330
341
  d.match(re)
331
342
  end
332
343
  end
333
344
  else
334
- fail "Don't know yet how to generate from #{where}"
345
+ fail "Don't know yet how to validate against #{where}"
335
346
  end
336
347
  end
337
348
  when :prim
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.1.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-06 00:00:00.000000000 Z
11
+ date: 2015-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cbor-diag
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: regexp-examples
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description: A parser, generator, and validator for CDDL
56
70
  email: cabo@tzi.org
57
71
  executables: