render 0.0.6 → 0.0.7
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 +8 -8
- data/lib/render/generator.rb +1 -1
- data/lib/render/schema.rb +1 -1
- data/lib/render/type.rb +2 -0
- data/lib/render/version.rb +1 -1
- data/spec/integration/render/graph_spec.rb +6 -2
- data/spec/integration/render/schema_spec.rb +1 -0
- data/spec/unit/render/attributes/array_attribute_spec.rb +1 -1
- data/spec/unit/render/generator_spec.rb +8 -0
- data/spec/unit/render/graph_spec.rb +1 -0
- data/spec/unit/render/schema_spec.rb +8 -0
- data/spec/unit/render/type_spec.rb +10 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OTBmMzkxOGM4YWViMjgyYjNlZDhkNTAwMTNiYjYyMzcyMWY0MjFkMw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MmRkZjhiNWJlZDI1OWY3MmJhMTgxZDU0ZDEyYzRiZmI2YzE0YTMwOQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MzEwMTFjNzQ4ZGIxMmQwNmQ5NzQ4Mjc2ODc3ZjU4OWIzMzU2N2JjMGIyZmYw
|
10
|
+
MzUyYzFjOTQ2MTI4MDY0MTFjMGI4YWY4MWVkYzdhMTdlYjI1YTA2YTNkM2Nj
|
11
|
+
YWY0OWJjMGUzZTU0NDZlYzg3NmZkNzJjZDc0NmVmYjkzNzRjNGE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZTVlNWQwMmI5YTYxNTBiMjNhNWEwMTI2ZGU3NDE3NTQ3ODMzNzI5NGM2NTll
|
14
|
+
MmEzN2RjN2RlYTJjNzFkYzkzZDhkNTE3YjE2OTllYjRhZjg0MDgyYWY1ZWI0
|
15
|
+
ODNjZWVhMjk3Mzg3ZTkzYWRkYTJjZDJmY2NlZGE4ZWQ2ZTNlZDQ=
|
data/lib/render/generator.rb
CHANGED
data/lib/render/schema.rb
CHANGED
@@ -25,7 +25,7 @@ module Render
|
|
25
25
|
self.definition = determine_definition(definition_or_title)
|
26
26
|
title_or_default = definition.fetch(:title, DEFAULT_TITLE)
|
27
27
|
self.title = title_or_default.to_sym
|
28
|
-
self.type = Type.parse
|
28
|
+
self.type = Type.parse(definition[:type]) || Object
|
29
29
|
self.universal_title = definition.fetch(:universal_title, nil)
|
30
30
|
|
31
31
|
if definition.keys.include?(:items)
|
data/lib/render/type.rb
CHANGED
@@ -25,6 +25,8 @@ module Render
|
|
25
25
|
def parse(name, raise_error = false)
|
26
26
|
return name unless name.is_a?(String)
|
27
27
|
Render::Type.find(name) || Object.const_get(name.capitalize)
|
28
|
+
rescue NameError
|
29
|
+
raise Errors::InvalidType.new(name) if raise_error
|
28
30
|
end
|
29
31
|
|
30
32
|
def parse!(name)
|
data/lib/render/version.rb
CHANGED
@@ -7,7 +7,10 @@ module Render
|
|
7
7
|
title: :films,
|
8
8
|
type: Array,
|
9
9
|
items: {
|
10
|
-
|
10
|
+
type: Object,
|
11
|
+
properties: {
|
12
|
+
id: { type: "number" }
|
13
|
+
}
|
11
14
|
}
|
12
15
|
}
|
13
16
|
end
|
@@ -68,7 +71,8 @@ module Render
|
|
68
71
|
}
|
69
72
|
},
|
70
73
|
genre: {
|
71
|
-
|
74
|
+
type: String,
|
75
|
+
enum: %w(horror action sci-fi)
|
72
76
|
},
|
73
77
|
tags: {
|
74
78
|
type: Array,
|
@@ -21,7 +21,7 @@ module Render
|
|
21
21
|
describe "archetype" do
|
22
22
|
it "returns only a value" do
|
23
23
|
id = UUID.generate
|
24
|
-
attribute = ArrayAttribute.new({ items: {
|
24
|
+
attribute = ArrayAttribute.new({ items: { type: UUID } })
|
25
25
|
attribute.serialize([id]).should == [id]
|
26
26
|
end
|
27
27
|
end
|
@@ -3,6 +3,7 @@ require "render/generator"
|
|
3
3
|
module Render
|
4
4
|
describe Generator do
|
5
5
|
before(:each) do
|
6
|
+
Render.stub({ live: false })
|
6
7
|
@original_generators = Generator.instances.dup
|
7
8
|
end
|
8
9
|
|
@@ -26,6 +27,13 @@ module Render
|
|
26
27
|
end
|
27
28
|
end
|
28
29
|
|
30
|
+
describe ".trigger" do
|
31
|
+
it "triggers matching generator for Render types" do
|
32
|
+
enum_attribute = HashAttribute.new({ attribute_name: { type: String, enum: ["foo"] } })
|
33
|
+
Generator.trigger(:enum, "anything", enum_attribute).should == "foo"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
29
37
|
describe "#initialize" do
|
30
38
|
it "sets the type of data it can be used to generate data for" do
|
31
39
|
type = [UUID, Float].sample
|
@@ -37,6 +37,11 @@ module Render
|
|
37
37
|
Schema.new(definition).type.should == type
|
38
38
|
end
|
39
39
|
|
40
|
+
it "defaults its type to Object" do
|
41
|
+
definition = { properties: {} }
|
42
|
+
Schema.new(definition).type.should == Object
|
43
|
+
end
|
44
|
+
|
40
45
|
describe "#array_attribute" do
|
41
46
|
it "is set for array schemas" do
|
42
47
|
archetype_schema = {
|
@@ -55,6 +60,7 @@ module Render
|
|
55
60
|
describe "#hash_attributes" do
|
56
61
|
it "is set for object schemas" do
|
57
62
|
simple_schema = {
|
63
|
+
type: Object,
|
58
64
|
properties: {
|
59
65
|
name: { type: String },
|
60
66
|
genre: { type: String }
|
@@ -99,6 +105,7 @@ module Render
|
|
99
105
|
before(:each) do
|
100
106
|
Definition.load!({
|
101
107
|
title: :film,
|
108
|
+
type: Object,
|
102
109
|
properties: {
|
103
110
|
genre: { type: String }
|
104
111
|
}
|
@@ -176,6 +183,7 @@ module Render
|
|
176
183
|
definition = {
|
177
184
|
title: :film,
|
178
185
|
universal_title: :imdb_films_show,
|
186
|
+
type: Object,
|
179
187
|
properties: {
|
180
188
|
genre: { type: String }
|
181
189
|
}
|
@@ -15,6 +15,16 @@ module Render
|
|
15
15
|
Type.parse("integer").should == Integer
|
16
16
|
end
|
17
17
|
|
18
|
+
it "returns nil if no type is found" do
|
19
|
+
Type.parse("not-a-type").should == nil
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe ".parse!" do
|
24
|
+
it "returns constant for string" do
|
25
|
+
Type.parse("integer").should == Integer
|
26
|
+
end
|
27
|
+
|
18
28
|
it "returns argument when not a string" do
|
19
29
|
class ::Foo; end
|
20
30
|
Type.parse(Foo).should == Foo
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: render
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Weber
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|