reviewed 0.1.26 → 0.1.27

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.
@@ -2,9 +2,11 @@ module Faraday
2
2
  class ApiKey < Faraday::Middleware
3
3
 
4
4
  def call(env)
5
- unless env.request.headers['X-Reviewed-Authorization']
5
+ unless env[:request_headers]['X-Reviewed-Authorization']
6
6
  raise ::Reviewed::ConfigurationError.new("Please set the API key for your Reviewed::Client instance before making a request")
7
7
  end
8
+
9
+ @app.call(env)
8
10
  end
9
11
  end
10
12
  end
@@ -0,0 +1,14 @@
1
+ module Faraday
2
+ class Errors < Faraday::Middleware
3
+
4
+ def call(env)
5
+ @app.call(env).on_complete do
6
+ if env[:response].status == 404
7
+ raise Reviewed::ResourceNotFound.new('Not Found')
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+
14
+ Faraday.register_middleware :response, errors: Faraday::Errors
@@ -47,7 +47,9 @@ module Reviewed
47
47
  def connection
48
48
  @connection ||= ::Faraday.new(url: base_uri) do |faraday|
49
49
  faraday.response :mashify
50
+ faraday.response :errors
50
51
  faraday.response :json
52
+ faraday.request :api_key
51
53
  faraday.request :url_encoded
52
54
  faraday.adapter Faraday.default_adapter
53
55
  end
@@ -4,6 +4,7 @@ module Reviewed
4
4
  class Product < Base
5
5
  has_many :attachments
6
6
  has_many :manufacturer_specs
7
+ has_one :brand
7
8
 
8
9
  def attachments(tag=nil)
9
10
  if tag.present?
@@ -1,4 +1,4 @@
1
1
  module Reviewed
2
- VERSION = "0.1.26"
2
+ VERSION = "0.1.27"
3
3
  API_VERSION = 'v1'
4
4
  end
data/lib/reviewed.rb CHANGED
@@ -3,6 +3,7 @@ $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__)))
3
3
  require 'faraday'
4
4
  require 'faraday_middleware'
5
5
  require 'faraday/api_key'
6
+ require 'faraday/errors'
6
7
  require 'active_support/inflector'
7
8
  require 'active_support/core_ext'
8
9
  require 'active_model'
@@ -16,15 +17,16 @@ require 'reviewed/collection'
16
17
  require 'reviewed/base'
17
18
 
18
19
  require 'reviewed/manufacturer_spec'
20
+ require 'reviewed/brand'
19
21
  require 'reviewed/product'
20
22
  require 'reviewed/article'
21
23
  require 'reviewed/author'
22
- require 'reviewed/brand'
23
24
  require 'reviewed/page'
24
25
  require 'reviewed/website'
25
26
 
26
27
 
27
28
  module Reviewed
28
29
  class ConfigurationError < StandardError; end
30
+ class ResourceNotFound < StandardError; end
29
31
  end
30
32
 
data/spec/article_spec.rb CHANGED
@@ -8,7 +8,7 @@ describe Reviewed::Article do
8
8
  end
9
9
 
10
10
  before(:each) do
11
- @article = client.articles.find('big-green-egg-medium-charcoal-grill-review')
11
+ @article = client.articles.find('big-green-egg-medium-charcoal-grill-review', { with_attachments: true })
12
12
  end
13
13
 
14
14
  describe 'associations' do
@@ -53,7 +53,7 @@ describe Reviewed::Article do
53
53
  end
54
54
 
55
55
  it 'finds attachments by tag' do
56
- attachments = @article.attachments('hero')
56
+ attachments = @article.attachments('old-hero')
57
57
  attachments.length.should == 1
58
58
  attachments.each do |attachment|
59
59
  attachment.tags.join(',').should match(/hero/i)
data/spec/client_spec.rb CHANGED
@@ -123,7 +123,7 @@ describe Reviewed::Client do
123
123
  end
124
124
 
125
125
  it 'sets the url' do
126
- conn.url_prefix.to_s.should eql('http://localhost:3000/api/v1')
126
+ conn.url_prefix.to_s.should match('https://')
127
127
  end
128
128
  end
129
129
 
@@ -1,37 +1,42 @@
1
1
  require 'spec_helper.rb'
2
- require 'ostruct'
3
2
 
4
3
  describe Faraday::ApiKey do
5
4
 
6
- class FauxApp
7
- def call(env)
8
- return env
5
+ describe 'error' do
6
+
7
+ stubs = Faraday::Adapter::Test::Stubs.new do |stub|
8
+ stub.get('/products/123') {[ 200, {foo: 'hi'}, '']}
9
9
  end
10
- end
11
10
 
12
- let(:faraday) { Faraday::ApiKey.new(FauxApp.new) }
13
- let(:env) { {} }
11
+ test = Faraday.new do |builder|
12
+ builder.request :api_key
13
+ builder.adapter :test, stubs
14
+ end
14
15
 
15
- describe 'call' do
16
+ it 'should raise a configuration error' do
17
+ expect {
18
+ test.get('/products/123')
19
+ }.to raise_error(Reviewed::ConfigurationError)
20
+ end
21
+ end
16
22
 
17
- context 'no auth token' do
23
+ describe 'no error' do
18
24
 
19
- it 'raises Reviewed::ConfigurationError' do
20
- expect {
21
- faraday.call(env)
22
- }.to raise_error
23
- end
25
+ stubs = Faraday::Adapter::Test::Stubs.new do |stub|
26
+ stub.get('/products/123') {[ 200, {foo: 'hi'}, '']}
24
27
  end
25
28
 
26
- context 'auth token' do
29
+ test = Faraday.new do |builder|
30
+ builder.request :api_key
31
+ builder.adapter :test, stubs
32
+ end
27
33
 
28
- let(:env) { OpenStruct.new(request: OpenStruct.new({ headers: {'X-Reviewed-Authorization' => '123'} })) }
34
+ test.headers = { "X-Reviewed-Authorization" => '123' }
29
35
 
30
- it 'does not error' do
31
- expect {
32
- faraday.call(env)
33
- }.to_not raise_error
34
- end
36
+ it 'should not raise an error' do
37
+ expect {
38
+ test.get('/products/123')
39
+ }.to_not raise_error
35
40
  end
36
41
  end
37
42
  end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper.rb'
2
+
3
+ describe Faraday::Errors do
4
+
5
+ describe 'error' do
6
+ stubs = Faraday::Adapter::Test::Stubs.new do |stub|
7
+ stub.get('/products/123') {[ 404, {}, { message: 'Record Not Found' } ]}
8
+ end
9
+
10
+ test = Faraday.new do |builder|
11
+ builder.response :errors
12
+ builder.response :json
13
+ builder.adapter :test, stubs
14
+ end
15
+
16
+ it 'should raise a routing error' do
17
+ expect {
18
+ test.get('/products/123')
19
+ }.to raise_error(Reviewed::ResourceNotFound)
20
+ end
21
+ end
22
+
23
+ describe 'no error' do
24
+ stubs = Faraday::Adapter::Test::Stubs.new do |stub|
25
+ stub.get('/products/123') {[ 200, {}, { message: 'Record Not Found' } ]}
26
+ end
27
+
28
+ test = Faraday.new do |builder|
29
+ builder.response :errors
30
+ builder.response :json
31
+ builder.adapter :test, stubs
32
+ end
33
+
34
+ it 'should not raise an error' do
35
+ expect {
36
+ test.get('/products/123')
37
+ }.to_not raise_error
38
+ end
39
+ end
40
+ end
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: http://localhost:3000/api/v1/articles/minden-master-ii-grill-review
5
+ uri: https://the-guide-staging.herokuapp.com/api/v1/articles/minden-master-ii-grill-review
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -21,15 +21,6 @@ http_interactions:
21
21
  message: !binary |-
22
22
  T0s=
23
23
  headers:
24
- !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu":
25
- - !binary |-
26
- Kg==
27
- !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcw==":
28
- - !binary |-
29
- T1BUSU9OUywgR0VULCBQT1NULCBQVVQsIERFTEVURQ==
30
- !binary "QWNjZXNzLUNvbnRyb2wtTWF4LUFnZQ==":
31
- - !binary |-
32
- MTAwMA==
33
24
  !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHM=":
34
25
  - !binary |-
35
26
  dHJ1ZQ==
@@ -37,143 +28,174 @@ http_interactions:
37
28
  - !binary |-
38
29
  eC1wYWdpbmF0aW9uLCB4LXJlcXVlc3RlZC13aXRoLCB4LXJlcXVlc3RlZC1i
39
30
  eSwgeC1yZXZpZXdlZC1hdXRob3JpemF0aW9uLCBDb250ZW50LVR5cGU=
31
+ !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcw==":
32
+ - !binary |-
33
+ T1BUSU9OUywgR0VULCBQT1NULCBQVVQsIERFTEVURQ==
34
+ !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu":
35
+ - !binary |-
36
+ Kg==
37
+ !binary "QWNjZXNzLUNvbnRyb2wtTWF4LUFnZQ==":
38
+ - !binary |-
39
+ MTAwMA==
40
40
  !binary "Q2FjaGUtQ29udHJvbA==":
41
41
  - !binary |-
42
42
  bm8tY2FjaGUsIG5vLXN0b3Jl
43
- !binary "WC1SYXRlLUxpbWl0":
43
+ !binary "Q29udGVudC1FbmNvZGluZw==":
44
44
  - !binary |-
45
- OTk5OTE=
45
+ Z3ppcA==
46
46
  !binary "Q29udGVudC1UeXBl":
47
47
  - !binary |-
48
48
  YXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOA==
49
+ !binary "RGF0ZQ==":
50
+ - !binary |-
51
+ VHVlLCAwNCBEZWMgMjAxMiAxOTo1NToyOCBHTVQ=
52
+ !binary "RXRhZw==":
53
+ - !binary |-
54
+ ImUwYWEwMjFlMjFkZGRiZDZkOGNlY2VjNzFlOWNmNTY0Ig==
55
+ !binary "U2VydmVy":
56
+ - !binary |-
57
+ dGhpbiAxLjUuMCBjb2RlbmFtZSBLbmlmZQ==
58
+ !binary "U3RyaWN0LVRyYW5zcG9ydC1TZWN1cml0eQ==":
59
+ - !binary |-
60
+ bWF4LWFnZT0zMTUzNjAwMA==
49
61
  !binary "VmFyeQ==":
50
62
  - !binary |-
51
63
  QWNjZXB0LUVuY29kaW5n
52
- !binary "Q29udGVudC1FbmNvZGluZw==":
53
- - !binary |-
54
- Z3ppcA==
55
- !binary "WC1VYS1Db21wYXRpYmxl":
64
+ !binary "WC1SYWNrLUNhY2hl":
56
65
  - !binary |-
57
- SUU9RWRnZQ==
58
- !binary "RXRhZw==":
66
+ bWlzcw==
67
+ !binary "WC1SYXRlLUxpbWl0":
59
68
  - !binary |-
60
- IjYxZTY0ODllZDRiMzQwYTg4ZTBjM2M3MTY5ZWFkNDYyIg==
69
+ OTk4ODA=
61
70
  !binary "WC1SZXF1ZXN0LUlk":
62
71
  - !binary |-
63
- NjAwZDEwYjcyZWJjM2QwMDQ4ZGJjNTJhOTZjOWZjNmM=
72
+ ZjhlNmZhZWQ0Yjg1N2RlODdjNDA3ODIyOTUyZGQwNWY=
64
73
  !binary "WC1SdW50aW1l":
65
74
  - !binary |-
66
- MC43OTQ4NTI=
67
- !binary "Q29ubmVjdGlvbg==":
75
+ MC4wMDMyMjI=
76
+ !binary "WC1VYS1Db21wYXRpYmxl":
68
77
  - !binary |-
69
- Y2xvc2U=
70
- !binary "U2VydmVy":
78
+ SUU9RWRnZSxjaHJvbWU9MQ==
79
+ !binary "VHJhbnNmZXItRW5jb2Rpbmc=":
71
80
  - !binary |-
72
- dGhpbiAxLjUuMCBjb2RlbmFtZSBLbmlmZQ==
81
+ Y2h1bmtlZA==
82
+ !binary "Q29ubmVjdGlvbg==":
83
+ - !binary |-
84
+ a2VlcC1hbGl2ZQ==
73
85
  body:
74
86
  encoding: ASCII-8BIT
75
87
  string: !binary |-
76
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- Fwl1s5wGwT1ZUY9EISORL2T1UTNpRla4SEwyvoaFinvFdBv27I4RHAVLoAwb
89
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- gTmwiiDabOHyNUB4kEZAEVac3cGTkphUCO/ew60kErIBD1iBDxIHWUwClERc
103
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- XG4hDuhNmKhbcji4ne0sIQZ/0jRhbCn+WJ7YSRRQM6lE/4RBcczB5fLq4Qn5
112
- GTyOexgHKaTgKlOAS1NyB0rblW+rzFCqHdPFPkes9faxWcA8oI+daeBGpEgU
113
- 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
- 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
- +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
- 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
- yIGa7PrVrspI0Nwj+rT3UdN2wlsyiKIcJHLExsZF70OktGUUeTI34SfUVFP4
118
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- A3weIGAWR69HcggGVXGIW6glNZX3pgKjV1kWzy8vsfEVrKI0m+tgzMs8DiLq
151
- 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
- 1erF5IfW12CIdqr1i8kPrQ+LvFdV7TTrF5MfWh8CFix0MuuLyQ+tb8EQ41Tr
153
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
171
- Pxf/5+L/XPyfi/9z8X8u/v9Kxb+1+8t15+L/XPyfi/9z8X8u/s/F/7n4//MW
172
- /7u/dXQu/s/F/7n4Pxf/5+L/XPyfi/8/UfH/+P+GdxT+D/6yTnNMAf/LhI93
173
- /8zRwZ/SWLEk+vgf0pjZjk5te6oyzbE0xbZ9XdUNfzZ1dRc+qVSjljadmSXg
174
- HxV2CLh3F6IE9+NiDADy7mKUQH5cjAGg3V2MErSPizEAoPt4hgTo42IMAOPu
175
- YpRgfFyMAcDbXYwSeLuJ0RNk+4mhd3LRAYDaTwwE1KNiDAHPzmIcWf2T/BzH
176
- Uwnbhr6poSuf6lc5/rq/vvU0E/1fAAAAAP//AwAjfJx2bXkAAA==
88
+ H4sIADBVvlAAA+xdC2/byLX+KwPhYrNFJZsPvW+3vbvOZmsgWRuJgkXvJhCG
89
+ 5FDimiLZIWnFNfLfe87M8CXrQSq0ErTaxbYhOZz55jy/c4Z2Hjue05l2Bpo1
90
+ GZtaf6g5bORYjq5rum7Yo063Y3NGE+bMaQLjDE03etqgpw9mhj7VB1N9+P8w
91
+ Jo2cjTE4TJ9p/ak2mfYNHBPQFYOnb7zAYQF5Q+OEcXJ9TX7hnu+Tt+zeY2sY
92
+ ZnEa2Mu5Gr0Sw+B2nK5WlD/ALbi4Zzz2wqAz1fvdzppZsZewuefEnenvuJPB
93
+ wHVduRNqm4YG/9ha52O3k9AFjoE/2T6NY8/1bJrAROJFLhHAwyi1fC9eznGF
94
+ YsfjmT6ZmrAh7c+aBv8LOGiSUHu5YkFSWh3lOKjK0UE5bn/E3J2PXG33o/7u
95
+ R4Pi0XDj0WT3I7rrEVwLmXAP5T+PeOikNu5XWs1gNHL0iT2xTGM4cob2RGeW
96
+ g/ry0wXqT2i7J9XY87zeArXd45m2vXiesFXkg/V0pi71YwZL0QVDYT7uNU27
97
+ MKnrIJGo0CbKpjJbhuliSZIlI3/hUwV9im+Ry7+S7/+nP5qQN+/e3v6JJCkP
98
+ mEO8gMSh7zkkYtwN+QpMkZEgXVlgcF3iJS9isvLAcIIFccErUs5iQgOH2CFC
99
+ 8GNYiiYk9laeT3kPZGbDpGLLMcxt+6nDLshs6cXyJqF2klLffyBL6pAwYCR0
100
+ BVoX5RUnZImLRCTxVrCQeqamW7MX94zgKFgCMaxpjDhiD+4EibjFXLBwD6/C
101
+ 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
177
+ ZkctazFILfnhIpyXrttqthQ9TJgGrsWXjk7lFvJ5QZWnnTTIL4r7f8smb00R
178
+ NE2WId8gU/3RiJY6eSPmiHPS7WRKn+njqTaaDvaQqeqYrE9PkXjfkRuoyXyW
179
+ JII44Zfy8Oxnx0sE148BXTK3vHDbC7KHLzik+hli/HhenK2LM++3mUeB4xCX
180
+ rjz8SSSXiMbWRQc1HSyea25lYJGctxeWNhmHtoch67HDVtTDUBDlj/+Pl+ZF
181
+ l6P3EDS45I0rrJ3ySLdery8WXD6XoUH88XLCxsPhiOqDUd8a6qDIgWVTpg+s
182
+ Sd8djS3zb/EP/fF3zg8rLGRXzPHSVSuT6kY+a4DnL21AFfO1GXh2FRC7fh/E
183
+ LptXvzNjV2vzyRhl881/AHBXbfFcNUVdbFlNcdSOWiw36uPNyo3jELdXidRH
184
+ nFUixyFur0ipjzgrUo5D3F790sSKZf1yHOL2Spv6iLPS5jjE7VU99RFnVc/x
185
+ iNspiJohNo/2vPZqpWaIsVY6CnGLZVRtxEcArV9hbVQxOORSbrWl2us5t1kp
186
+ y/ThoDX+c+AzW/e5+E6Tr6NOzXfqYqvynYY7apHv1Mdb5TtNEbfHd+ojrvKd
187
+ pojb4zv1EVf5TlPE7fGdJlZc5jtNEbfHd+ojrvKdpojb4zv1EVf5zjGI2+E7
188
+ zRCbR3tee3ynGeKC7zRE3CLfqY34CKDfEN95zm1W+c5oeCK+4+74dO3L+U6T
189
+ j7dPzXfqYqvynYY7apHv1Mdb5TtNEbfHd+ojrvKdpojb4zv1EVf5TlPE7fGd
190
+ JlZc5jtNEbfHd+ojrvKdpojb4zv1EVf5zjGI2+E7zRCbR3tee3ynGeKC7zRE
191
+ 3CLfqY34CKDfEN95zm1Wj91h1KkIT//c4Dk3eM4NnnOD59zgOTd4zg2er9/5
192
+ +IYIz39ig2dwbvCcGzznBs+5wXNu8JwbPOcGz9fvfHxDfOc/osGz7a+OO0B4
193
+ jIZ/E+C5wXNu8JwbPOcGz7nBc27wnBs85wbPV23wbPv7cJ+F75wbPOcGz7nB
194
+ c27wnBs85wbPucFzbvB8Gw0euG6f8Cy419v+u3/3/mqr0Hd6S8bDZ/vlVuOJ
195
+ ZdLJZKQzwxoa2mTimrrZd8cj27ThSqcGHRqj8SCjOQf30SKlqY8tozSH0bVH
196
+ X+qjy+jLYXTtUZX66DKqchhde7SkidVJWnIYXXsUpD66jIIcRtce3aiPLqMb
197
+ 9dC1Qy2aoTNreUV7NKIZOqQRB9G1SBlqozsA6uS/Iqst4NWEP+qb2ql+U9Z/
198
+ 7y/ibmeifwsAAAD//wMAdyIylDuLAAA=
177
199
  http_version:
178
- recorded_at: Mon, 03 Dec 2012 16:44:44 GMT
200
+ recorded_at: Tue, 04 Dec 2012 19:55:37 GMT
179
201
  recorded_with: VCR 2.3.0