jimmy 0.3.2 → 0.3.3
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/lib/jimmy/definitions.rb +9 -3
- data/lib/jimmy/schema.rb +1 -1
- data/lib/jimmy/schema_creation.rb +9 -6
- data/lib/jimmy/schema_type.rb +1 -0
- data/lib/jimmy/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b1cb2f2d598473a594b870040ab3b022caf9ca4
|
4
|
+
data.tar.gz: f283a986673ede842adf3f2e944410005fb87695
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49ecc7449f9195e2839429944dcf9aa7e42db540e3cac4cd201f350c72798d27601ba75beee800abb1c7c5c8790e11578703496715322ce3d99eb0d179a75d4f
|
7
|
+
data.tar.gz: 12f4c5e48b02c700cb815bed05cf89a5e299cec8ce22907e1345eb51159fbd1e6c5daede18b9d6484b7fcbb5df69bae29dfdf5105ee403a2616f95b85ad3d7c5
|
data/lib/jimmy/definitions.rb
CHANGED
@@ -1,9 +1,15 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
|
1
3
|
module Jimmy
|
2
|
-
class Definitions
|
4
|
+
class Definitions
|
5
|
+
extend Forwardable
|
6
|
+
delegate %i[empty? key? map] => :@values
|
7
|
+
|
3
8
|
attr_reader :schema
|
4
9
|
|
5
10
|
def initialize(schema)
|
6
11
|
@schema = schema
|
12
|
+
@values = {}
|
7
13
|
end
|
8
14
|
|
9
15
|
def evaluate(&block)
|
@@ -23,9 +29,9 @@ module Jimmy
|
|
23
29
|
end
|
24
30
|
|
25
31
|
def [](key)
|
26
|
-
|
32
|
+
@values[key] || (schema.parent && schema.parent.definitions[key])
|
27
33
|
end
|
28
34
|
|
29
|
-
SchemaCreation.apply_to(self) { |schema, name|
|
35
|
+
SchemaCreation.apply_to(self) { |schema, name| @values[name] = schema }
|
30
36
|
end
|
31
37
|
end
|
data/lib/jimmy/schema.rb
CHANGED
@@ -32,6 +32,7 @@ module Jimmy
|
|
32
32
|
{'type' => type.to_s}.tap do |hash|
|
33
33
|
hash['definitions'] = definitions.compile unless definitions.empty?
|
34
34
|
hash['links'] = links.map &:compile unless links.empty?
|
35
|
+
hash.merge! data
|
35
36
|
dsl.evaluate compiler, hash if compiler
|
36
37
|
end
|
37
38
|
end
|
@@ -62,7 +63,6 @@ module Jimmy
|
|
62
63
|
|
63
64
|
def to_h
|
64
65
|
{'$schema' => schema_uri}.tap do |h|
|
65
|
-
h.merge! data
|
66
66
|
h['id'] = url if name
|
67
67
|
h.merge! compile
|
68
68
|
end
|
@@ -21,7 +21,16 @@ module Jimmy
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
+
module MetadataMethods
|
25
|
+
def set(**values)
|
26
|
+
values.each { |k, v| data[k.to_s] = v }
|
27
|
+
end
|
28
|
+
|
29
|
+
%i[title description default].each { |k| define_method(k) { |v| set k => v } }
|
30
|
+
end
|
31
|
+
|
24
32
|
module DefiningMethods
|
33
|
+
include MetadataMethods
|
25
34
|
|
26
35
|
def locals
|
27
36
|
@locals ||= {}
|
@@ -40,12 +49,6 @@ module Jimmy
|
|
40
49
|
locals.key?(method) || reserved?(method, false) || super
|
41
50
|
end
|
42
51
|
|
43
|
-
def set(**values)
|
44
|
-
values.each { |k, v| data[k.to_s] = v }
|
45
|
-
end
|
46
|
-
|
47
|
-
%i[title description default].each { |k| define_method(k) { |v| set k => v } }
|
48
|
-
|
49
52
|
def method_missing(method, *args, &block)
|
50
53
|
return locals[method] if locals.key?(method)
|
51
54
|
|
data/lib/jimmy/schema_type.rb
CHANGED
data/lib/jimmy/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jimmy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Neil E. Pearson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json-schema
|