reviewed 0.9.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: db3a05b1d0b2a929328c41ab48c40b9b8707fd35
4
- data.tar.gz: 0ccd060550059118ec043d4e85a062daf6f88d4a
3
+ metadata.gz: 137aeb665ec32dd554606f031b18612f32b64a69
4
+ data.tar.gz: b04ade2d3920b619a54175a41ebb779795a43c4d
5
5
  SHA512:
6
- metadata.gz: 54659e246365f426c614d133af5e7abe9a327e4c004274ae7b97903d26e164d15e2812dd46d3715d63f8298b7b479ecf67f5602bdafa8dfb05c5fe88b6451377
7
- data.tar.gz: b22a947086bd78edcf8d8e6bba98f56f6e0e00bff71aaba12d26a0e723c605547b3185eff0598becd5274220072c5fb440a1f03da4e431fbf5125840dc027919
6
+ metadata.gz: 4bb7cdc75da4892e4ce1813f035c5854fc1f128b99151d3b82a9828396c602f5d7394e46c3f1c6191e29c3f789cd5bff04599ec0620a6c84ba530af3235a82b0
7
+ data.tar.gz: fe47671af92c1468520d8d13a23c396aece4d684c9c8ecd64babc2908bc9a812f62c6f743568f1fb393e0592e9c6cafac5c25f75d474ba7a371e37766864f678
@@ -1,4 +1,7 @@
1
+ require 'reviewed/article'
2
+
1
3
  module Reviewed
2
4
  class Award < Base
5
+ has_many :articles
3
6
  end
4
7
  end
@@ -6,13 +6,8 @@ module Reviewed
6
6
  end
7
7
 
8
8
  class << self
9
-
10
- def embedded_class(name, opts_name=nil)
11
- name = opts_name ? opts_name : embedded_name(name)
12
- name.constantize
13
- end
14
-
15
- def embedded_name(name)
9
+ def embedded_name(name, opts_name=nil)
10
+ return opts_name if opts_name
16
11
  ["Reviewed", name.singularize.classify].join("::")
17
12
  end
18
13
  end
@@ -25,11 +20,11 @@ module Reviewed
25
20
 
26
21
  def objectify_has_many(json)
27
22
  self.class._embedded_many.each do |map|
28
- key, value = [map.keys[0], map.values[0]]
29
-
30
- if json.has_key?(key)
31
- json[key] = json[key].map do |obj|
32
- value.new(obj)
23
+ assoc_name, klass_name = [map.keys[0], map.values[0]]
24
+ klass = klass_name.constantize
25
+ if json.has_key?(assoc_name)
26
+ json[assoc_name] = json[assoc_name].map do |obj|
27
+ klass.new(obj)
33
28
  end
34
29
  end
35
30
  end
@@ -38,10 +33,10 @@ module Reviewed
38
33
 
39
34
  def objectify_has_one(json)
40
35
  self.class._embedded_one.each do |map|
41
- key, value = [map.keys[0], map.values[0]]
42
-
43
- if json.has_key?(key)
44
- json[key] = value.new(json[key])
36
+ assoc_name, klass_name = [map.keys[0], map.values[0]]
37
+ klass = klass_name.constantize
38
+ if json.has_key?(assoc_name)
39
+ json[assoc_name] = klass.new(json[assoc_name])
45
40
  end
46
41
  end
47
42
  return json
@@ -55,15 +50,15 @@ module Reviewed
55
50
  end
56
51
 
57
52
  def has_many(name, opts={})
58
- klass = Reviewed::Embeddable.embedded_class(name.to_s, opts[:class_name])
53
+ klass_string = Reviewed::Embeddable.embedded_name(name.to_s, opts[:class_name])
59
54
  association = opts[:as] || name
60
- _embedded_many << { association.to_s => klass }
55
+ _embedded_many << { association.to_s => klass_string }
61
56
  end
62
57
 
63
58
  def has_one(name, opts={})
64
- klass = Reviewed::Embeddable.embedded_class(name.to_s, opts[:class_name])
59
+ klass_string = Reviewed::Embeddable.embedded_name(name.to_s, opts[:class_name])
65
60
  association = opts[:as] || name
66
- _embedded_one << { association.to_s => klass }
61
+ _embedded_one << { association.to_s => klass_string }
67
62
  end
68
63
 
69
64
  def _embedded_many
@@ -1,4 +1,4 @@
1
1
  module Reviewed
2
- VERSION = "0.9.1"
2
+ VERSION = "1.0.0"
3
3
  API_VERSION = 'v1'
4
4
  end
data/spec/article_spec.rb CHANGED
@@ -16,27 +16,27 @@ describe Reviewed::Article, vcr: true do
16
16
  describe 'pages' do
17
17
 
18
18
  it 'has_many :pages' do
19
- Reviewed::Article._embedded_many.should include({"pages"=>Reviewed::Page})
19
+ Reviewed::Article._embedded_many.should include({"pages"=>"Reviewed::Page"})
20
20
  end
21
21
  end
22
22
 
23
23
  describe 'deals' do
24
24
 
25
25
  it 'has_many :deals' do
26
- Reviewed::Article._embedded_many.should include({"deals"=>Reviewed::Deal})
26
+ Reviewed::Article._embedded_many.should include({"deals"=>"Reviewed::Deal"})
27
27
  end
28
28
  end
29
29
 
30
30
  describe 'related_articles' do
31
31
  it 'has_many :related_articles' do
32
- Reviewed::Article._embedded_many.should include({"related_articles"=>Reviewed::Article})
32
+ Reviewed::Article._embedded_many.should include({"related_articles"=>"Reviewed::Article"})
33
33
  end
34
34
  end
35
35
 
36
36
  describe 'products' do
37
37
 
38
38
  it 'has_many :products' do
39
- Reviewed::Article._embedded_many.should include({"products"=>Reviewed::Product})
39
+ Reviewed::Article._embedded_many.should include({"products"=>"Reviewed::Product"})
40
40
  end
41
41
 
42
42
  it 'returns products of the correct class' do
@@ -49,7 +49,7 @@ describe Reviewed::Article, vcr: true do
49
49
  describe 'attachments' do
50
50
 
51
51
  it 'does not has_many :attachments' do
52
- Reviewed::Article._embedded_many.should_not include({"attachments"=>Reviewed::Attachment})
52
+ Reviewed::Article._embedded_many.should_not include({"attachments"=>"Reviewed::Attachment"})
53
53
  end
54
54
 
55
55
  it 'gets gallery attachments' do
data/spec/award_spec.rb CHANGED
@@ -1,4 +1,28 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Reviewed::Award do
4
+
5
+ let(:client) do
6
+ Reviewed::Client.new(api_key: TEST_KEY, base_uri: TEST_URL)
7
+ end
8
+
9
+ describe 'associations' do
10
+
11
+ describe 'articles', vcr: true do
12
+
13
+ before(:each) do
14
+ @award = client.awards.find('best-of-year')
15
+ end
16
+
17
+ it 'has_many :articles' do
18
+ Reviewed::Award._embedded_many.should include({"articles"=>"Reviewed::Article"})
19
+ end
20
+
21
+ it 'returns attachments of the correct class' do
22
+ @award.articles.each do |article|
23
+ article.should be_an_instance_of(Reviewed::Article)
24
+ end
25
+ end
26
+ end
27
+ end
4
28
  end
@@ -35,16 +35,7 @@ describe Reviewed::Embeddable do
35
35
  it 'stores the correct embedded relationship' do
36
36
  Reviewed::MockEmbeddable._embedded_many.should be_empty
37
37
  Reviewed::MockEmbeddable.has_many("mock_embeddables")
38
- Reviewed::MockEmbeddable._embedded_many.should eql([{ "mock_embeddables" => Reviewed::MockEmbeddable }])
39
- end
40
- end
41
-
42
- context 'invalid name' do
43
-
44
- it 'errors' do
45
- expect {
46
- Reviewed::MockEmbeddable.has_many("bad_name")
47
- }.to raise_error
38
+ Reviewed::MockEmbeddable._embedded_many.should eql([{ "mock_embeddables" => "Reviewed::MockEmbeddable" }])
48
39
  end
49
40
  end
50
41
  end
@@ -54,7 +45,7 @@ describe Reviewed::Embeddable do
54
45
  it 'stores the correct embedded relationship' do
55
46
  Reviewed::MockEmbeddable._embedded_many.should be_empty
56
47
  Reviewed::MockEmbeddable.has_many("mock_embeddables", as: "test")
57
- Reviewed::MockEmbeddable._embedded_many.should eql([{ "test" => Reviewed::MockEmbeddable }])
48
+ Reviewed::MockEmbeddable._embedded_many.should eql([{ "test" => "Reviewed::MockEmbeddable" }])
58
49
  end
59
50
  end
60
51
 
@@ -63,7 +54,7 @@ describe Reviewed::Embeddable do
63
54
  it 'stores the correct embedded relationship' do
64
55
  Reviewed::MockEmbeddable._embedded_many.should be_empty
65
56
  Reviewed::MockEmbeddable.has_many("mock_embeddables", class_name: "Reviewed::Article")
66
- Reviewed::MockEmbeddable._embedded_many.should eql([{ "mock_embeddables" => Reviewed::Article }])
57
+ Reviewed::MockEmbeddable._embedded_many.should eql([{ "mock_embeddables" => "Reviewed::Article" }])
67
58
  end
68
59
  end
69
60
  end
@@ -73,7 +64,7 @@ describe Reviewed::Embeddable do
73
64
  it 'stores the correct embedded relationship' do
74
65
  Reviewed::MockEmbeddable._embedded_one.should be_empty
75
66
  Reviewed::MockEmbeddable.has_one("mock_embeddable")
76
- Reviewed::MockEmbeddable._embedded_one.should eql([{ "mock_embeddable" => Reviewed::MockEmbeddable }])
67
+ Reviewed::MockEmbeddable._embedded_one.should eql([{ "mock_embeddable" => "Reviewed::MockEmbeddable" }])
77
68
  end
78
69
  end
79
70
 
@@ -98,7 +89,7 @@ describe Reviewed::Embeddable do
98
89
  let(:mocked) { Reviewed::MockEmbeddable.new }
99
90
 
100
91
  before(:each) do
101
- Reviewed::MockEmbeddable._embedded_many = [ { "articles" => Reviewed::Article } ]
92
+ Reviewed::MockEmbeddable._embedded_many = [ { "articles" => "Reviewed::Article" } ]
102
93
  end
103
94
 
104
95
  context 'relationship exists in json' do
@@ -129,7 +120,7 @@ describe Reviewed::Embeddable do
129
120
  let(:mocked) { Reviewed::MockEmbeddable.new }
130
121
 
131
122
  before(:each) do
132
- Reviewed::MockEmbeddable._embedded_one = [ { "article" => Reviewed::Article } ]
123
+ Reviewed::MockEmbeddable._embedded_one = [ { "article" => "Reviewed::Article" } ]
133
124
  end
134
125
 
135
126
  it 'objectifies' do
@@ -152,37 +143,13 @@ describe Reviewed::Embeddable do
152
143
  Reviewed::Embeddable.embedded_name("mock_embeddable").should eql("Reviewed::MockEmbeddable")
153
144
  end
154
145
  end
155
- end
156
-
157
- describe '.embedded_class' do
158
146
 
159
147
  context 'opts_name' do
160
148
 
161
149
  context 'valid' do
162
150
 
163
151
  it 'returns a class_constant' do
164
- Reviewed::Embeddable.embedded_class("test", "Reviewed::MockEmbeddable")
165
- .should eql(Reviewed::MockEmbeddable)
166
- end
167
- end
168
-
169
- context 'invalid' do
170
-
171
- it 'errors' do
172
- expect {
173
- Reviewed::Embeddable.embedded_class("test", "Reviewed::MockBad")
174
- }.to raise_error
175
- end
176
- end
177
- end
178
-
179
- context 'name' do
180
-
181
- context 'valid' do
182
-
183
- it 'returns a class_constant' do
184
- Reviewed::Embeddable.embedded_class("mock_embeddables")
185
- .should eql(Reviewed::MockEmbeddable)
152
+ Reviewed::Embeddable.embedded_name("test", "Reviewed::MockEmbeddable").should eql("Reviewed::MockEmbeddable")
186
153
  end
187
154
  end
188
155
  end
@@ -0,0 +1,137 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://the-guide-staging.herokuapp.com/api/v1/products/best-of-year
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Reviewed-Authorization:
11
+ - 38e397252ec670ec441733a95204f141
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - '*/*'
16
+ User-Agent:
17
+ - Ruby
18
+ response:
19
+ status:
20
+ code: 404
21
+ message: Not Found
22
+ headers:
23
+ Access-Control-Allow-Credentials:
24
+ - 'true'
25
+ Access-Control-Allow-Headers:
26
+ - x-pagination, x-requested-with, x-requested-by, x-reviewed-authorization,
27
+ x-skip-cache, Content-Type
28
+ Access-Control-Allow-Methods:
29
+ - OPTIONS, GET, POST, PUT, DELETE
30
+ Access-Control-Allow-Origin:
31
+ - '*'
32
+ Access-Control-Max-Age:
33
+ - '1000'
34
+ Cache-Control:
35
+ - no-cache, no-store
36
+ Content-Type:
37
+ - application/json; charset=utf-8
38
+ Date:
39
+ - Wed, 23 Oct 2013 20:26:06 GMT
40
+ Etag:
41
+ - '"e0aa021e21dddbd6d8cecec71e9cf564"'
42
+ Status:
43
+ - 404 Not Found
44
+ Strict-Transport-Security:
45
+ - max-age=31536000
46
+ Vary:
47
+ - Accept-Encoding
48
+ X-Rack-Cache:
49
+ - miss
50
+ X-Request-Id:
51
+ - dd3ae6ddb7599b7e77a8452fbc99d009
52
+ X-Runtime:
53
+ - '0.000745'
54
+ X-Ua-Compatible:
55
+ - IE=Edge,chrome=1
56
+ Transfer-Encoding:
57
+ - chunked
58
+ Connection:
59
+ - keep-alive
60
+ body:
61
+ encoding: UTF-8
62
+ string: '{"message":"Record Not Found"}'
63
+ http_version:
64
+ recorded_at: Wed, 23 Oct 2013 20:26:21 GMT
65
+ - request:
66
+ method: get
67
+ uri: https://the-guide-staging.herokuapp.com/api/v1/awards/best-of-year
68
+ body:
69
+ encoding: US-ASCII
70
+ string: ''
71
+ headers:
72
+ X-Reviewed-Authorization:
73
+ - 38e397252ec670ec441733a95204f141
74
+ Accept-Encoding:
75
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
76
+ Accept:
77
+ - '*/*'
78
+ User-Agent:
79
+ - Ruby
80
+ response:
81
+ status:
82
+ code: 200
83
+ message: OK
84
+ headers:
85
+ Access-Control-Allow-Credentials:
86
+ - 'true'
87
+ Access-Control-Allow-Headers:
88
+ - x-pagination, x-requested-with, x-requested-by, x-reviewed-authorization,
89
+ x-skip-cache, Content-Type
90
+ Access-Control-Allow-Methods:
91
+ - OPTIONS, GET, POST, PUT, DELETE
92
+ Access-Control-Allow-Origin:
93
+ - '*'
94
+ Access-Control-Max-Age:
95
+ - '1000'
96
+ Cache-Control:
97
+ - no-cache, no-store
98
+ Content-Type:
99
+ - application/json; charset=utf-8
100
+ Date:
101
+ - Wed, 23 Oct 2013 20:26:36 GMT
102
+ Etag:
103
+ - '"e0aa021e21dddbd6d8cecec71e9cf564"'
104
+ Last-Modified:
105
+ - Tue, 22 Oct 2013 22:00:41 GMT
106
+ Status:
107
+ - 200 OK
108
+ Strict-Transport-Security:
109
+ - max-age=31536000
110
+ Vary:
111
+ - Accept-Encoding
112
+ X-Rack-Cache:
113
+ - miss
114
+ X-Request-Id:
115
+ - 61a50ad8fd2bb86b35243656a36792fe
116
+ X-Runtime:
117
+ - '0.000745'
118
+ X-Ua-Compatible:
119
+ - IE=Edge,chrome=1
120
+ Transfer-Encoding:
121
+ - chunked
122
+ Connection:
123
+ - keep-alive
124
+ body:
125
+ encoding: UTF-8
126
+ string: '{"id":"50fef5cf85b7580c5100000c","created_at":"2013-01-22T20:25:51Z","updated_at":"2013-10-22T22:00:41Z","name":"Best
127
+ of Year","year":"2012","description":"It''s hard to know what to buy. There
128
+ are tons of electronics and home good our there with conflicting user reviews
129
+ everywhere you turn. How do you know which to trust? Our advice is simple:
130
+ let good science decide! Our labs test hundred of products each year. Only
131
+ a precious few are great enough to earn a prestigious Best of Year award.
132
+ \n\nThe Best of Year awards are just that: the absolute best products of the
133
+ last calendar year. There are options at every price point, and lots of special
134
+ award categories to help you find just what you need.","slug":"best-of-year","resource_uri":"http://www.reviewed.com/awards/best-of-year","article_ids":[],"image_badge":{"small":"http://reviewed-staging.s3.amazonaws.com/uploads/award/image_badge/50fef5cf85b7580c5100000c/small_leapaxlr8r-banner-companies.png","medium":"http://reviewed-staging.s3.amazonaws.com/uploads/award/image_badge/50fef5cf85b7580c5100000c/medium_leapaxlr8r-banner-companies.png","large":"http://reviewed-staging.s3.amazonaws.com/uploads/award/image_badge/50fef5cf85b7580c5100000c/large_leapaxlr8r-banner-companies.png"},"articles":[],"permissions":{"read":true,"create":false,"update":false,"destroy":false},"api_links":{"collection":{"rel":"/api/v1/awards","href":"https://the-guide-staging.herokuapp.com/api/v1/awards"},"resource":{"rel":"/api/v1/awards/50fef5cf85b7580c5100000c","href":"https://the-guide-staging.herokuapp.com/api/v1/awards/50fef5cf85b7580c5100000c"}}}'
135
+ http_version:
136
+ recorded_at: Wed, 23 Oct 2013 20:26:51 GMT
137
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,137 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://the-guide-staging.herokuapp.com/api/v1/products/best-of-year
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Reviewed-Authorization:
11
+ - 38e397252ec670ec441733a95204f141
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - '*/*'
16
+ User-Agent:
17
+ - Ruby
18
+ response:
19
+ status:
20
+ code: 404
21
+ message: Not Found
22
+ headers:
23
+ Access-Control-Allow-Credentials:
24
+ - 'true'
25
+ Access-Control-Allow-Headers:
26
+ - x-pagination, x-requested-with, x-requested-by, x-reviewed-authorization,
27
+ x-skip-cache, Content-Type
28
+ Access-Control-Allow-Methods:
29
+ - OPTIONS, GET, POST, PUT, DELETE
30
+ Access-Control-Allow-Origin:
31
+ - '*'
32
+ Access-Control-Max-Age:
33
+ - '1000'
34
+ Cache-Control:
35
+ - no-cache, no-store
36
+ Content-Type:
37
+ - application/json; charset=utf-8
38
+ Date:
39
+ - Wed, 23 Oct 2013 20:26:07 GMT
40
+ Etag:
41
+ - '"e0aa021e21dddbd6d8cecec71e9cf564"'
42
+ Status:
43
+ - 404 Not Found
44
+ Strict-Transport-Security:
45
+ - max-age=31536000
46
+ Vary:
47
+ - Accept-Encoding
48
+ X-Rack-Cache:
49
+ - miss
50
+ X-Request-Id:
51
+ - 5413449a8c611eaec9856053f581cae0
52
+ X-Runtime:
53
+ - '0.001468'
54
+ X-Ua-Compatible:
55
+ - IE=Edge,chrome=1
56
+ Transfer-Encoding:
57
+ - chunked
58
+ Connection:
59
+ - keep-alive
60
+ body:
61
+ encoding: UTF-8
62
+ string: '{"message":"Record Not Found"}'
63
+ http_version:
64
+ recorded_at: Wed, 23 Oct 2013 20:26:22 GMT
65
+ - request:
66
+ method: get
67
+ uri: https://the-guide-staging.herokuapp.com/api/v1/awards/best-of-year
68
+ body:
69
+ encoding: US-ASCII
70
+ string: ''
71
+ headers:
72
+ X-Reviewed-Authorization:
73
+ - 38e397252ec670ec441733a95204f141
74
+ Accept-Encoding:
75
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
76
+ Accept:
77
+ - '*/*'
78
+ User-Agent:
79
+ - Ruby
80
+ response:
81
+ status:
82
+ code: 200
83
+ message: OK
84
+ headers:
85
+ Access-Control-Allow-Credentials:
86
+ - 'true'
87
+ Access-Control-Allow-Headers:
88
+ - x-pagination, x-requested-with, x-requested-by, x-reviewed-authorization,
89
+ x-skip-cache, Content-Type
90
+ Access-Control-Allow-Methods:
91
+ - OPTIONS, GET, POST, PUT, DELETE
92
+ Access-Control-Allow-Origin:
93
+ - '*'
94
+ Access-Control-Max-Age:
95
+ - '1000'
96
+ Cache-Control:
97
+ - no-cache, no-store
98
+ Content-Type:
99
+ - application/json; charset=utf-8
100
+ Date:
101
+ - Wed, 23 Oct 2013 20:26:36 GMT
102
+ Etag:
103
+ - '"e0aa021e21dddbd6d8cecec71e9cf564"'
104
+ Last-Modified:
105
+ - Tue, 22 Oct 2013 22:00:41 GMT
106
+ Status:
107
+ - 200 OK
108
+ Strict-Transport-Security:
109
+ - max-age=31536000
110
+ Vary:
111
+ - Accept-Encoding
112
+ X-Rack-Cache:
113
+ - miss
114
+ X-Request-Id:
115
+ - 0bb629f64ebf293f804af3a9db3f51c9
116
+ X-Runtime:
117
+ - '0.000919'
118
+ X-Ua-Compatible:
119
+ - IE=Edge,chrome=1
120
+ Transfer-Encoding:
121
+ - chunked
122
+ Connection:
123
+ - keep-alive
124
+ body:
125
+ encoding: UTF-8
126
+ string: '{"id":"50fef5cf85b7580c5100000c","created_at":"2013-01-22T20:25:51Z","updated_at":"2013-10-22T22:00:41Z","name":"Best
127
+ of Year","year":"2012","description":"It''s hard to know what to buy. There
128
+ are tons of electronics and home good our there with conflicting user reviews
129
+ everywhere you turn. How do you know which to trust? Our advice is simple:
130
+ let good science decide! Our labs test hundred of products each year. Only
131
+ a precious few are great enough to earn a prestigious Best of Year award.
132
+ \n\nThe Best of Year awards are just that: the absolute best products of the
133
+ last calendar year. There are options at every price point, and lots of special
134
+ award categories to help you find just what you need.","slug":"best-of-year","resource_uri":"http://www.reviewed.com/awards/best-of-year","article_ids":[],"image_badge":{"small":"http://reviewed-staging.s3.amazonaws.com/uploads/award/image_badge/50fef5cf85b7580c5100000c/small_leapaxlr8r-banner-companies.png","medium":"http://reviewed-staging.s3.amazonaws.com/uploads/award/image_badge/50fef5cf85b7580c5100000c/medium_leapaxlr8r-banner-companies.png","large":"http://reviewed-staging.s3.amazonaws.com/uploads/award/image_badge/50fef5cf85b7580c5100000c/large_leapaxlr8r-banner-companies.png"},"articles":[],"permissions":{"read":true,"create":false,"update":false,"destroy":false},"api_links":{"collection":{"rel":"/api/v1/awards","href":"https://the-guide-staging.herokuapp.com/api/v1/awards"},"resource":{"rel":"/api/v1/awards/50fef5cf85b7580c5100000c","href":"https://the-guide-staging.herokuapp.com/api/v1/awards/50fef5cf85b7580c5100000c"}}}'
135
+ http_version:
136
+ recorded_at: Wed, 23 Oct 2013 20:26:51 GMT
137
+ recorded_with: VCR 2.4.0
data/spec/product_spec.rb CHANGED
@@ -16,7 +16,7 @@ describe Reviewed::Product do
16
16
  end
17
17
 
18
18
  it 'no longer has_many :attachments' do
19
- Reviewed::Product._embedded_many.should_not include({"attachments"=>Reviewed::Attachment})
19
+ Reviewed::Product._embedded_many.should_not include({"attachments"=>"Reviewed::Attachment"})
20
20
  end
21
21
 
22
22
  it 'returns attachments of the correct class' do
@@ -50,7 +50,7 @@ describe Reviewed::Product do
50
50
  end
51
51
 
52
52
  it 'has_many :manufacturer_specs' do
53
- Reviewed::Product._embedded_many.should include({"manufacturer_specs"=>Reviewed::ManufacturerSpec})
53
+ Reviewed::Product._embedded_many.should include({"manufacturer_specs"=>"Reviewed::ManufacturerSpec"})
54
54
  end
55
55
 
56
56
  it 'returns attachments of the correct class' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reviewed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Plante
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-10 00:00:00.000000000 Z
12
+ date: 2013-10-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -277,6 +277,8 @@ files:
277
277
  - spec/fixtures/vcr/Reviewed_Article/returns_local_attachments_when_available.yml
278
278
  - spec/fixtures/vcr/Reviewed_Article/uses_the_client_to_fetch.yml
279
279
  - spec/fixtures/vcr/Reviewed_Article/uses_the_client_to_fetch_scoped_attachments.yml
280
+ - spec/fixtures/vcr/Reviewed_Award/associations/articles/has_many_articles.yml
281
+ - spec/fixtures/vcr/Reviewed_Award/associations/articles/returns_attachments_of_the_correct_class.yml
280
282
  - spec/fixtures/vcr/Reviewed_Client/_perform/request_params/not_set/has_nil_query_params.yml
281
283
  - spec/fixtures/vcr/Reviewed_Client/_perform/request_params/set/merges_quest_params.yml
282
284
  - spec/fixtures/vcr/Reviewed_Collection/collection_data/fetches_the_first_page_by_default.yml
@@ -369,6 +371,8 @@ test_files:
369
371
  - spec/fixtures/vcr/Reviewed_Article/returns_local_attachments_when_available.yml
370
372
  - spec/fixtures/vcr/Reviewed_Article/uses_the_client_to_fetch.yml
371
373
  - spec/fixtures/vcr/Reviewed_Article/uses_the_client_to_fetch_scoped_attachments.yml
374
+ - spec/fixtures/vcr/Reviewed_Award/associations/articles/has_many_articles.yml
375
+ - spec/fixtures/vcr/Reviewed_Award/associations/articles/returns_attachments_of_the_correct_class.yml
372
376
  - spec/fixtures/vcr/Reviewed_Client/_perform/request_params/not_set/has_nil_query_params.yml
373
377
  - spec/fixtures/vcr/Reviewed_Client/_perform/request_params/set/merges_quest_params.yml
374
378
  - spec/fixtures/vcr/Reviewed_Collection/collection_data/fetches_the_first_page_by_default.yml