reviewed 0.9.1 → 1.0.0

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 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