reviewed 0.1.26 → 0.1.27

Sign up to get free protection for your applications and to get access to all the features.
@@ -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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
- 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
- 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
- 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
- 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
- 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
- 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
- w16s114sdTQscC696uGu8WPUK7+UwUFuozyp46cOmjq/pr88+z4BhycvV1EW
95
- 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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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
- hNmAE4TPMpA2IuvcXYEv33HBspHpINljiYDfycODW+H9wqEwR8azAAG+UlZD
104
- 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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
- 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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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
- pozjCJ6r1nVpyMV7Ah9q3glpUhRQ3zJCH6marQ46SosCwpiEraO7Iu/Q8N0+
124
- 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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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
- OZu5TNEU+GTqsIbp2N7McAzncRP+E1vN0raspn2M1bQeVrP0s9UGW83espr+
140
- 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
- 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
- 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
- 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
- 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
- p0k8mhtTe6JcjIq8d/g4pubgkj3OjXY+EJrHbimjiNqFqL/Ab4StYECSO3C9
146
- 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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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
- zoKAZZmgEXgIDO595/EsEt8LA+myhcOjXQ/IivyOBjkrvi+D58JEG120t1+V
159
- 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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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
- ijYA/buL1kb/vqINQP8+ntZE/76iDUD/7qK10b+vaAPQv7tobfQfIlpP9O8n
167
- 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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