cddl 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: