render 0.0.3 → 0.0.4
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 +15 -0
- data/Gemfile.lock +1 -1
- data/lib/render/array_attribute.rb +2 -3
- data/lib/render/attribute.rb +9 -11
- data/lib/render/graph.rb +10 -4
- data/lib/render/hash_attribute.rb +7 -2
- data/lib/render/schema.rb +5 -4
- data/lib/render/version.rb +1 -1
- data/spec/functional/representation/attribute_spec.rb +5 -7
- data/spec/functional/representation/graph_spec.rb +60 -0
- data/spec/unit/array_attribute_spec.rb +7 -1
- data/spec/unit/render/attribute_spec.rb +17 -0
- data/spec/unit/render/graph_spec.rb +4 -5
- data/spec/unit/render/hash_attribute_spec.rb +16 -5
- data/spec/unit/render/schema_spec.rb +5 -5
- metadata +7 -27
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MDFmMmYyYWI1MWI3ODE2YjRkNDAwOGEzODAwYWVkYTBiOTYwZjhkOA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZTI2MzAwODM2ODAwOGQ3OWM5MmI2ODViNmIxMTg5YmJkM2IwOWY0ZQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NzFjZWJiMDVjMjNkZTczODBhZTA3OWRiOGEzYTJhYjc3YzBkZTI3OWRkYzUz
|
10
|
+
NDUzZjMxYzBiYjM5MzAxM2Q4YzVjYjVjYzlmYjIwNjhhOTVlNGQwOWRjYzhk
|
11
|
+
NTJkN2UzYjAwMzBjMDE3MGMxNTllYzVhYjQwMTI5NGRlMzRlM2E=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MjJlZGMxYmNhMWMxMmU1ZjdlYWI2ODMxMWU0M2M1ZDJlM2U2NGZlZTgyYTlh
|
14
|
+
ZDgxOGNjOTVhODk4YzNlZjA4YmI3NTA1ZjVmZTYxZjk1OGE1NDFlYjljY2Jm
|
15
|
+
ZTUxYzU3NmM1NzdkNmQ4ZjMwMzY1ZDFjZDZmNmI0MjFjMWZkZjk=
|
data/Gemfile.lock
CHANGED
@@ -10,7 +10,7 @@ module Render
|
|
10
10
|
super
|
11
11
|
|
12
12
|
self.name = options.fetch(:title, :render_array_attribute_untitled).to_sym
|
13
|
-
options = options
|
13
|
+
options = options.fetch(:items)
|
14
14
|
self.type = Render.parse_type(options[:type])
|
15
15
|
self.format = Render.parse_type(options[:format]) rescue nil
|
16
16
|
self.enums = options[:enum]
|
@@ -44,8 +44,7 @@ module Render
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def lower_limit
|
47
|
-
|
48
|
-
1
|
47
|
+
required ? 1 : 0
|
49
48
|
end
|
50
49
|
|
51
50
|
end
|
data/lib/render/attribute.rb
CHANGED
@@ -19,6 +19,12 @@ module Render
|
|
19
19
|
self.required = false
|
20
20
|
end
|
21
21
|
|
22
|
+
def generator
|
23
|
+
@generator ||= Render.generators.detect do |generator|
|
24
|
+
generator.type == type && name.match(generator.matcher)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
22
28
|
def bias_type
|
23
29
|
format || type
|
24
30
|
end
|
@@ -33,29 +39,21 @@ module Render
|
|
33
39
|
|
34
40
|
private
|
35
41
|
|
36
|
-
# TODO implement better #faux_value
|
37
42
|
def faux_value
|
38
43
|
return enums.sample if enums
|
39
|
-
return
|
44
|
+
return generator.algorithm.call if generator
|
40
45
|
|
41
46
|
case(bias_type.name)
|
42
|
-
when("String") then "
|
47
|
+
when("String") then "#{name} (generated)"
|
43
48
|
when("Integer") then rand(1000)
|
44
49
|
when("UUID") then UUID.generate
|
45
50
|
when("Boolean") then [true, false].sample
|
46
|
-
when("Float") then rand(0.1..99)
|
51
|
+
when("Float") then rand(0.1..99).round(2)
|
47
52
|
when("Time")
|
48
53
|
time = Time.now
|
49
54
|
(type == String) ? time.to_s : time
|
50
55
|
end
|
51
56
|
end
|
52
57
|
|
53
|
-
def generator_value
|
54
|
-
generator = Render.generators.detect do |generator|
|
55
|
-
generator.type == type && name.match(generator.matcher)
|
56
|
-
end
|
57
|
-
generator.algorithm.call if generator
|
58
|
-
end
|
59
58
|
end
|
60
|
-
|
61
59
|
end
|
data/lib/render/graph.rb
CHANGED
@@ -49,12 +49,18 @@ module Render
|
|
49
49
|
uri.to_s
|
50
50
|
end
|
51
51
|
|
52
|
-
def render(inherited_properties =
|
52
|
+
def render(inherited_properties = nil)
|
53
53
|
self.inherited_data = inherited_properties
|
54
|
+
if (schema.type == Array)
|
55
|
+
explicit_data = inherited_data
|
56
|
+
else
|
57
|
+
explicit_data = inherited_data.is_a?(Hash) ? inherited_data : {}
|
58
|
+
explicit_data = explicit_data.merge!(relationship_data_from_parent)
|
59
|
+
end
|
54
60
|
|
55
61
|
graph_data = DottableHash.new
|
56
|
-
|
57
|
-
rendered_data = schema.render!(
|
62
|
+
|
63
|
+
rendered_data = schema.render!(explicit_data, endpoint) do |parent_data|
|
58
64
|
loop_with_configured_threading(graphs) do |graph|
|
59
65
|
if parent_data.is_a?(Array)
|
60
66
|
graph_data[graph.title] = parent_data.inject([]) do |nested_data, element|
|
@@ -119,7 +125,7 @@ module Render
|
|
119
125
|
if !inherited_data.is_a?(Hash)
|
120
126
|
return inherited_data
|
121
127
|
elsif (child_key == key)
|
122
|
-
return inherited_data.fetch(parent_key)
|
128
|
+
return inherited_data.fetch(parent_key, nil)
|
123
129
|
end
|
124
130
|
end
|
125
131
|
nil
|
@@ -24,12 +24,17 @@ module Render
|
|
24
24
|
self.schema = Schema.new(schema_options.merge(options))
|
25
25
|
end
|
26
26
|
|
27
|
-
def serialize(explicit_value)
|
27
|
+
def serialize(explicit_value, maintain_nil = false)
|
28
28
|
if !!schema
|
29
29
|
value = schema.serialize!(explicit_value)
|
30
30
|
{ name.to_sym => value }
|
31
31
|
else
|
32
|
-
|
32
|
+
if (maintain_nil && !explicit_value)
|
33
|
+
value = explicit_value
|
34
|
+
else
|
35
|
+
value = (explicit_value || default_value)
|
36
|
+
end
|
37
|
+
|
33
38
|
{ name.to_sym => value }
|
34
39
|
end
|
35
40
|
end
|
data/lib/render/schema.rb
CHANGED
@@ -49,15 +49,16 @@ module Render
|
|
49
49
|
self.serialized_data = hash_attributes.inject({}) do |processed_explicit_data, attribute|
|
50
50
|
explicit_data ||= {}
|
51
51
|
value = explicit_data.fetch(attribute.name, nil)
|
52
|
-
|
52
|
+
maintain_nil = explicit_data.has_key?(attribute.name)
|
53
|
+
|
54
|
+
serialized_attribute = attribute.serialize(value, maintain_nil)
|
53
55
|
processed_explicit_data.merge!(serialized_attribute)
|
54
56
|
end
|
55
57
|
end
|
56
58
|
end
|
57
59
|
|
58
|
-
def render!(
|
59
|
-
|
60
|
-
self.raw_data = Render.live ? request(endpoint) : options_and_explicit_data
|
60
|
+
def render!(explicit_data = nil, endpoint = nil)
|
61
|
+
self.raw_data = Render.live ? request(endpoint) : explicit_data
|
61
62
|
serialize!(raw_data)
|
62
63
|
yield serialized_data if block_given?
|
63
64
|
self.rendered_data = DottableHash.new(hash_with_title_prefixes(serialized_data))
|
data/lib/render/version.rb
CHANGED
@@ -2,14 +2,12 @@ module Render
|
|
2
2
|
describe Attribute do
|
3
3
|
context "generators" do
|
4
4
|
before(:each) do
|
5
|
-
@original_generators = Render.generators
|
6
|
-
|
7
|
-
Render.live = false
|
5
|
+
@original_generators = Render.generators.dup
|
6
|
+
Render.stub({ live: false })
|
8
7
|
end
|
9
8
|
|
10
9
|
after(:each) do
|
11
10
|
Render.generators = @original_generators
|
12
|
-
Render.live = @original_live
|
13
11
|
end
|
14
12
|
|
15
13
|
it "uses matching generator for #faux_value" do
|
@@ -20,9 +18,9 @@ module Render
|
|
20
18
|
HashAttribute.new({ name: { type: String } }).default_value.should == name
|
21
19
|
end
|
22
20
|
|
23
|
-
it "uses
|
24
|
-
bare_boned_string = "
|
25
|
-
HashAttribute.new({
|
21
|
+
it "uses bare-boned type if no generator is found" do
|
22
|
+
bare_boned_string = "the_attribute_name (generated)"
|
23
|
+
HashAttribute.new({ the_attribute_name: { type: String } }).default_value.should == bare_boned_string
|
26
24
|
end
|
27
25
|
end
|
28
26
|
end
|
@@ -5,5 +5,65 @@ module Render
|
|
5
5
|
describe "relationships" do
|
6
6
|
#
|
7
7
|
end
|
8
|
+
|
9
|
+
context "not live" do
|
10
|
+
describe "#render" do
|
11
|
+
before(:each) do
|
12
|
+
Render.stub({ live: false })
|
13
|
+
@hash_definition = {
|
14
|
+
title: :book,
|
15
|
+
type: Object,
|
16
|
+
properties: {
|
17
|
+
title: { type: String }
|
18
|
+
}
|
19
|
+
}
|
20
|
+
@array_definition = {
|
21
|
+
title: :books,
|
22
|
+
type: Array,
|
23
|
+
items: {
|
24
|
+
type: UUID
|
25
|
+
}
|
26
|
+
}
|
27
|
+
end
|
28
|
+
|
29
|
+
it "generates random number of array elements" do
|
30
|
+
graph = Graph.new(@array_definition)
|
31
|
+
generated_book_sizes = 5.times.collect { graph.render.books.size }
|
32
|
+
generated_book_sizes.compact.size.should > 1
|
33
|
+
end
|
34
|
+
|
35
|
+
context "explicit data" do
|
36
|
+
it "uses explicit data for hashes" do
|
37
|
+
graph = Render::Graph.new(@hash_definition)
|
38
|
+
green_eggs_and_ham = "Green Eggs and Ham"
|
39
|
+
data = graph.render({ title: green_eggs_and_ham })
|
40
|
+
data.book.title.should == green_eggs_and_ham
|
41
|
+
end
|
42
|
+
|
43
|
+
it "uses explicit nil data for hashes" do
|
44
|
+
graph = Render::Graph.new(@hash_definition)
|
45
|
+
data = graph.render({ title: nil })
|
46
|
+
data.book.title.should == nil
|
47
|
+
end
|
48
|
+
|
49
|
+
it "uses explicit data for arrays" do
|
50
|
+
graph = Render::Graph.new(@array_definition)
|
51
|
+
id = UUID.generate
|
52
|
+
graph.render([id]).books.should == [id]
|
53
|
+
graph.render([]).books.should == []
|
54
|
+
end
|
55
|
+
|
56
|
+
it "uses explicit data for nested data" do
|
57
|
+
@array_definition[:items] = @hash_definition
|
58
|
+
nested_graph = Graph.new(@array_definition)
|
59
|
+
tell_tale_heart = "The Tell-Tale Heart"
|
60
|
+
data = nested_graph.render([{ title: tell_tale_heart }])
|
61
|
+
data.books.size.should == 1
|
62
|
+
data.books.first.title.should == tell_tale_heart
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
8
68
|
end
|
9
69
|
end
|
@@ -38,8 +38,14 @@ module Render
|
|
38
38
|
end
|
39
39
|
|
40
40
|
it "generates fake number of elements" do
|
41
|
+
lower_limit = 6
|
42
|
+
upper_limit = 9
|
43
|
+
@attribute.stub({ lower_limit: lower_limit })
|
44
|
+
stub_const("Render::ArrayAttribute::FAUX_DATA_UPPER_LIMIT", upper_limit)
|
45
|
+
|
41
46
|
faux_data = @attribute.serialize
|
42
|
-
faux_data.size.should
|
47
|
+
faux_data.size.should >= lower_limit
|
48
|
+
faux_data.size.should <= upper_limit
|
43
49
|
faux_data.sample.class.should == Float
|
44
50
|
end
|
45
51
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Render
|
2
|
+
describe Attribute do
|
3
|
+
describe "#default_value" do
|
4
|
+
before(:each) do
|
5
|
+
Render.stub({ live: false })
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "String" do
|
9
|
+
it "uses attribute name for context" do
|
10
|
+
name = "some identifier"
|
11
|
+
faux_value = HashAttribute.new({ name => { type: String } }).default_value
|
12
|
+
faux_value.should include(name)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -7,7 +7,7 @@ module Render
|
|
7
7
|
before(:each) do
|
8
8
|
Render.stub({ live: false })
|
9
9
|
@definition = double(:definition)
|
10
|
-
@schema = double(:schema)
|
10
|
+
@schema = double(:schema, { type: Hash })
|
11
11
|
Schema.stub(:new).with(@definition).and_return(@schema)
|
12
12
|
end
|
13
13
|
|
@@ -108,7 +108,7 @@ module Render
|
|
108
108
|
client_id = UUID.generate
|
109
109
|
graph = Graph.new(@definition, { endpoint: endpoint, client_id: client_id })
|
110
110
|
|
111
|
-
@schema.should_receive(:render!).with(
|
111
|
+
@schema.should_receive(:render!).with(anything, graph.endpoint).and_return({})
|
112
112
|
graph.render
|
113
113
|
end
|
114
114
|
|
@@ -146,9 +146,8 @@ module Render
|
|
146
146
|
film_data = { director_id: @director_id }
|
147
147
|
@film_schema.should_receive(:render!).and_yield(film_data).and_return(film_data)
|
148
148
|
|
149
|
-
|
150
|
-
|
151
|
-
end.and_return({})
|
149
|
+
endpoint = "http://endpoint.local/directors/#{@director_id}"
|
150
|
+
@director_schema.should_receive(:render!).with(anything, endpoint).and_return({})
|
152
151
|
film.render
|
153
152
|
end
|
154
153
|
|
@@ -86,12 +86,23 @@ module Render
|
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
|
-
|
90
|
-
|
91
|
-
|
89
|
+
context "offline" do
|
90
|
+
before(:each) do
|
91
|
+
Render.stub({ live: false })
|
92
|
+
end
|
93
|
+
|
94
|
+
it "uses faux data when offline" do
|
95
|
+
type = [String, Integer].sample
|
96
|
+
data = HashAttribute.new({ title: { type: type } }).serialize(nil)
|
97
|
+
data[:title].should be_a(type)
|
98
|
+
end
|
92
99
|
|
93
|
-
|
94
|
-
|
100
|
+
it "maintains falsy-ie values when instructed" do
|
101
|
+
data = HashAttribute.new({ title: { type: Integer } }).serialize(nil, true)
|
102
|
+
data[:title].should == nil
|
103
|
+
data = HashAttribute.new({ title: { type: Integer } }).serialize(false, true)
|
104
|
+
data[:title].should == false
|
105
|
+
end
|
95
106
|
end
|
96
107
|
end
|
97
108
|
|
@@ -90,7 +90,7 @@ module Render
|
|
90
90
|
}
|
91
91
|
}
|
92
92
|
schema = Schema.new(definition)
|
93
|
-
schema.hash_attributes.first.should_receive(:serialize).with(nil).and_return({ title: "foo" })
|
93
|
+
schema.hash_attributes.first.should_receive(:serialize).with(nil, anything).and_return({ title: "foo" })
|
94
94
|
schema.serialize!.should == { title: "foo" }
|
95
95
|
end
|
96
96
|
end
|
@@ -146,7 +146,7 @@ module Render
|
|
146
146
|
|
147
147
|
expect {
|
148
148
|
schema = Schema.new(:film)
|
149
|
-
schema.render!(
|
149
|
+
schema.render!(nil, endpoint)
|
150
150
|
}.to raise_error(Errors::Schema::RequestError)
|
151
151
|
end
|
152
152
|
|
@@ -155,7 +155,7 @@ module Render
|
|
155
155
|
stub_request(:get, endpoint).to_return({ body: "Server Error: 500" })
|
156
156
|
|
157
157
|
expect {
|
158
|
-
Schema.new(:film).render!(
|
158
|
+
Schema.new(:film).render!(nil, endpoint)
|
159
159
|
}.to raise_error(Errors::Schema::InvalidResponse)
|
160
160
|
end
|
161
161
|
|
@@ -171,9 +171,9 @@ module Render
|
|
171
171
|
stub_request(:get, endpoint).to_return(response)
|
172
172
|
|
173
173
|
schema = Schema.new(:film)
|
174
|
-
schema.hash_attributes.first.should_receive(:serialize).with(genre).and_return({ genre: genre })
|
174
|
+
schema.hash_attributes.first.should_receive(:serialize).with(genre, anything).and_return({ genre: genre })
|
175
175
|
|
176
|
-
schema.render!(
|
176
|
+
schema.render!(nil, endpoint).should == { film: data }
|
177
177
|
end
|
178
178
|
|
179
179
|
it "is serialized value nested under #universal_title" do
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: render
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Steve Weber
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-01-19 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: uuid
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - '='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - '='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ! '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: debugger
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ! '>='
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ! '>='
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: rspec
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ! '>='
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ! '>='
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,7 +97,6 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: webmock
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ! '>='
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ! '>='
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -166,6 +151,7 @@ files:
|
|
166
151
|
- spec/support/helpers.rb
|
167
152
|
- spec/unit/array_attribute_spec.rb
|
168
153
|
- spec/unit/extensions/boolean_spec.rb
|
154
|
+
- spec/unit/render/attribute_spec.rb
|
169
155
|
- spec/unit/render/dottable_hash_spec.rb
|
170
156
|
- spec/unit/render/generator_spec.rb
|
171
157
|
- spec/unit/render/graph_spec.rb
|
@@ -175,33 +161,26 @@ files:
|
|
175
161
|
homepage: https://github.com/stevenweber/render
|
176
162
|
licenses:
|
177
163
|
- MIT
|
164
|
+
metadata: {}
|
178
165
|
post_install_message:
|
179
166
|
rdoc_options: []
|
180
167
|
require_paths:
|
181
168
|
- lib
|
182
169
|
required_ruby_version: !ruby/object:Gem::Requirement
|
183
|
-
none: false
|
184
170
|
requirements:
|
185
171
|
- - ! '>='
|
186
172
|
- !ruby/object:Gem::Version
|
187
173
|
version: '0'
|
188
|
-
segments:
|
189
|
-
- 0
|
190
|
-
hash: 2584837128307883424
|
191
174
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
192
|
-
none: false
|
193
175
|
requirements:
|
194
176
|
- - ! '>='
|
195
177
|
- !ruby/object:Gem::Version
|
196
178
|
version: '0'
|
197
|
-
segments:
|
198
|
-
- 0
|
199
|
-
hash: 2584837128307883424
|
200
179
|
requirements: []
|
201
180
|
rubyforge_project:
|
202
|
-
rubygems_version: 1.
|
181
|
+
rubygems_version: 2.1.11
|
203
182
|
signing_key:
|
204
|
-
specification_version:
|
183
|
+
specification_version: 4
|
205
184
|
summary: With a JSON schema, Render will manage requests, dependent request and build
|
206
185
|
meaningful, extensible sample data for testing.
|
207
186
|
test_files:
|
@@ -217,6 +196,7 @@ test_files:
|
|
217
196
|
- spec/support/helpers.rb
|
218
197
|
- spec/unit/array_attribute_spec.rb
|
219
198
|
- spec/unit/extensions/boolean_spec.rb
|
199
|
+
- spec/unit/render/attribute_spec.rb
|
220
200
|
- spec/unit/render/dottable_hash_spec.rb
|
221
201
|
- spec/unit/render/generator_spec.rb
|
222
202
|
- spec/unit/render/graph_spec.rb
|