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.
- checksums.yaml +4 -4
- data/cddl.gemspec +2 -1
- data/lib/cddl.rb +14 -3
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de407896d680d320c446c027731247c60a315a97
|
4
|
+
data.tar.gz: eae775c3385f92d9fde90bca5c6daa758f4c1683
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45ca44b99561f01a106f615827392d83c509f43fba5cb2384c80aae133e15c611ffa487bd6109db0b18fd90bc0c6a14c233f6e81c3a266fed136234cb7424783
|
7
|
+
data.tar.gz: 8477bb82d3ec84c50d901c90f5af53f7f5431904fcdfe048f7d7f864835948cc9778ef87b0813815dbaff2d5b49d3f1979d2424b389915b49dccb3d36fd099e3
|
data/cddl.gemspec
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
spec = Gem::Specification.new do |s|
|
2
2
|
s.name = 'cddl'
|
3
|
-
s.version = '0.
|
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'
|
data/lib/cddl.rb
CHANGED
@@ -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
|
-
|
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 =
|
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
|
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.
|
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-
|
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:
|