render 0.1.1 → 0.1.2
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.
data/lib/render/type.rb
CHANGED
@@ -22,6 +22,7 @@ module Render
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def parse(name, raise_error = false)
|
25
|
+
return name.collect { |union_type| parse(union_type, raise_error) } if name.is_a?(Array)
|
25
26
|
return nil if (name.nil?)
|
26
27
|
return name unless name.is_a?(String) || name.is_a?(Symbol)
|
27
28
|
|
@@ -34,7 +35,7 @@ module Render
|
|
34
35
|
parse(name, true)
|
35
36
|
end
|
36
37
|
|
37
|
-
def to(classes, value
|
38
|
+
def to(classes, value)
|
38
39
|
return nil if (value.nil? || classes.any?(&:nil?))
|
39
40
|
return value if classes.any? { |klass| value.is_a?(klass) }
|
40
41
|
|
@@ -48,8 +49,6 @@ module Render
|
|
48
49
|
when Boolean.name
|
49
50
|
return true if (value == true || value == "true")
|
50
51
|
return false if (value == false || value == "false")
|
51
|
-
when Enum.name
|
52
|
-
(enums & [value]).first
|
53
52
|
else
|
54
53
|
value
|
55
54
|
end
|
data/lib/render/version.rb
CHANGED
@@ -52,11 +52,37 @@ module Render
|
|
52
52
|
schema = Schema.new(definition)
|
53
53
|
schema.serialize!(films).should == films
|
54
54
|
end
|
55
|
+
|
56
|
+
context "enums" do
|
57
|
+
before(:each) do
|
58
|
+
@genres = %w(horror comedy romcom)
|
59
|
+
@definition = {
|
60
|
+
title: "films",
|
61
|
+
type: Object,
|
62
|
+
properties: {
|
63
|
+
genre: {
|
64
|
+
enum: @genres
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
end
|
69
|
+
|
70
|
+
it "returns enum value" do
|
71
|
+
film = { genre: @genres.sample }
|
72
|
+
schema = Schema.new(@definition)
|
73
|
+
schema.serialize!(film).should == film
|
74
|
+
end
|
75
|
+
|
76
|
+
it "does not validate enum value" do
|
77
|
+
film = { genre: "not-defined-genre" }
|
78
|
+
schema = Schema.new(@definition)
|
79
|
+
schema.serialize!(film).should == film
|
80
|
+
end
|
81
|
+
end
|
55
82
|
end
|
56
83
|
|
57
84
|
describe "required" do
|
58
|
-
|
59
|
-
it "is set with HashAttribute-level keyword" do
|
85
|
+
it "can be set with draft-3 HashAttribute-level keyword" do
|
60
86
|
schema = Schema.new({
|
61
87
|
type: Object,
|
62
88
|
properties: {
|
@@ -65,7 +65,7 @@ module Render
|
|
65
65
|
context "enums" do
|
66
66
|
it "sets enum values" do
|
67
67
|
enum_values = ["foo", "bar", "baz"]
|
68
|
-
attribute = HashAttribute.new({ key: {
|
68
|
+
attribute = HashAttribute.new({ key: { enum: enum_values } })
|
69
69
|
attribute.enums.should == enum_values
|
70
70
|
end
|
71
71
|
end
|
@@ -22,6 +22,11 @@ module Render
|
|
22
22
|
it "returns nil if no type is found" do
|
23
23
|
Type.parse("not-a-type").should == nil
|
24
24
|
end
|
25
|
+
|
26
|
+
it "parses union types" do
|
27
|
+
union_types = ["string", "null"]
|
28
|
+
expect(Type.parse(union_types)).to eq([String, NilClass])
|
29
|
+
end
|
25
30
|
end
|
26
31
|
|
27
32
|
describe ".parse!" do
|
@@ -123,14 +128,8 @@ module Render
|
|
123
128
|
end
|
124
129
|
|
125
130
|
describe "enum" do
|
126
|
-
it "returns
|
127
|
-
|
128
|
-
Type.to([Type::Enum], :foo, enums).should == :foo
|
129
|
-
end
|
130
|
-
|
131
|
-
it "return nil for invalid enums" do
|
132
|
-
enums = [:foo]
|
133
|
-
Type.to([Type::Enum], :bar, enums).should == nil
|
131
|
+
it "returns enum regardless of validity" do
|
132
|
+
Type.to([Type::Enum], :foo).should == :foo
|
134
133
|
end
|
135
134
|
end
|
136
135
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: render
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-03-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: uuid
|
@@ -226,12 +226,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
226
226
|
- - ! '>='
|
227
227
|
- !ruby/object:Gem::Version
|
228
228
|
version: '0'
|
229
|
+
segments:
|
230
|
+
- 0
|
231
|
+
hash: -2504044044340370162
|
229
232
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
230
233
|
none: false
|
231
234
|
requirements:
|
232
235
|
- - ! '>='
|
233
236
|
- !ruby/object:Gem::Version
|
234
237
|
version: '0'
|
238
|
+
segments:
|
239
|
+
- 0
|
240
|
+
hash: -2504044044340370162
|
235
241
|
requirements: []
|
236
242
|
rubyforge_project:
|
237
243
|
rubygems_version: 1.8.23
|