intown 0.1.4 → 0.1.5
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 +7 -0
- data/lib/intown/client.rb +10 -1
- data/lib/intown/errors.rb +2 -0
- data/lib/intown/version.rb +1 -1
- data/spec/intown/artist_spec.rb +19 -5
- data/spec/spec_helper.rb +2 -0
- data/spec/support/shared_examples.rb +5 -0
- metadata +36 -49
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d76054e6f04a413200acac85cd5d1efa1001fd3f
|
4
|
+
data.tar.gz: f465740a9d6886e767a98188fc7f35ebf41da2ef
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 69d58ede22936397ae92900ed3997417176650beeef66830fac78d78f7113bf1f2ad6e67c7563520e399a53981a0af1aa7461a16bfd239af3a8807dbcbf1602e
|
7
|
+
data.tar.gz: 629e25cc1fe3fd3585c79d965f2214336f7b38e03f6925ac044582e52419d1f46d52d05773dd6af7afe977dfd0fad0fe01a064860308932ebb8e6c0b143ca41f
|
data/lib/intown/client.rb
CHANGED
@@ -20,7 +20,8 @@ module Intown
|
|
20
20
|
|
21
21
|
def process_response(response)
|
22
22
|
case response.code
|
23
|
-
when 500 then
|
23
|
+
when 500 then internal_server_error(response)
|
24
|
+
when 502 then bad_gateway(response)
|
24
25
|
when 404 then process_not_found(response)
|
25
26
|
when 406 then process_not_acceptable(response)
|
26
27
|
else
|
@@ -48,6 +49,14 @@ module Intown
|
|
48
49
|
nil
|
49
50
|
end
|
50
51
|
|
52
|
+
def internal_server_error(response)
|
53
|
+
raise Intown::InternalServerError, "Bandsintown returned a 500 internal server error. Please retry this request later."
|
54
|
+
end
|
55
|
+
|
56
|
+
def bad_gateway(response)
|
57
|
+
raise Intown::BadGatewayError, "Bandsintown returned a 502 proxy error. Please retry this request later."
|
58
|
+
end
|
59
|
+
|
51
60
|
def artist_identifier(params)
|
52
61
|
return musicbrainz_identifier(params[:mbid]) if params[:mbid]
|
53
62
|
return facebook_identifier(params[:fbid]) if params[:fbid]
|
data/lib/intown/errors.rb
CHANGED
data/lib/intown/version.rb
CHANGED
data/spec/intown/artist_spec.rb
CHANGED
@@ -59,21 +59,35 @@ describe Intown::Artist do
|
|
59
59
|
|
60
60
|
describe "invalid response" do
|
61
61
|
let(:status_code) { nil }
|
62
|
-
let(:response_body) {
|
62
|
+
let(:response_body) { '{"errors":["app_id param is required"]}' }
|
63
63
|
let(:response) {
|
64
64
|
stub(:body => response_body,
|
65
65
|
:code => status_code)
|
66
66
|
}
|
67
|
+
|
67
68
|
before do
|
68
69
|
Intown::Artist.should_receive(:get).and_return(response)
|
69
70
|
end
|
71
|
+
|
72
|
+
context "500 Internal Server Error" do
|
73
|
+
let(:status_code) { 500 }
|
74
|
+
it_behaves_like 'error', Intown::InternalServerError
|
75
|
+
end
|
76
|
+
|
77
|
+
context "502 Bad Gateway" do
|
78
|
+
let(:status_code) { 502 }
|
79
|
+
it_behaves_like 'error', Intown::BadGatewayError
|
80
|
+
end
|
81
|
+
|
82
|
+
context "404 Not Found" do
|
83
|
+
let(:status_code) { 404 }
|
84
|
+
it_behaves_like 'error', Intown::InvalidRequestError
|
85
|
+
end
|
86
|
+
|
70
87
|
context "406 Not Acceptable" do
|
71
88
|
let(:status_code) { 406 }
|
72
|
-
|
73
|
-
expect { Intown::Artist.fetch(:name => "Jr. Doc") }.to raise_error Intown::InvalidRequestError
|
74
|
-
end
|
89
|
+
it_behaves_like 'error', Intown::InvalidRequestError
|
75
90
|
end
|
76
|
-
|
77
91
|
end
|
78
92
|
|
79
93
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,112 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: intown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.1.4
|
4
|
+
version: 0.1.5
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ben Scheirman
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-07-30 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
prerelease: false
|
16
|
-
version_requirements: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - ~>
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: 2.12.0
|
21
|
-
none: false
|
22
|
-
type: :development
|
23
14
|
name: rspec
|
24
15
|
requirement: !ruby/object:Gem::Requirement
|
25
16
|
requirements:
|
26
17
|
- - ~>
|
27
18
|
- !ruby/object:Gem::Version
|
28
19
|
version: 2.12.0
|
29
|
-
|
30
|
-
- !ruby/object:Gem::Dependency
|
20
|
+
type: :development
|
31
21
|
prerelease: false
|
32
22
|
version_requirements: !ruby/object:Gem::Requirement
|
33
23
|
requirements:
|
34
24
|
- - ~>
|
35
25
|
- !ruby/object:Gem::Version
|
36
|
-
version: 2.
|
37
|
-
|
38
|
-
type: :development
|
26
|
+
version: 2.12.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
39
28
|
name: vcr
|
40
29
|
requirement: !ruby/object:Gem::Requirement
|
41
30
|
requirements:
|
42
31
|
- - ~>
|
43
32
|
- !ruby/object:Gem::Version
|
44
33
|
version: 2.4.0
|
45
|
-
|
46
|
-
- !ruby/object:Gem::Dependency
|
34
|
+
type: :development
|
47
35
|
prerelease: false
|
48
36
|
version_requirements: !ruby/object:Gem::Requirement
|
49
37
|
requirements:
|
50
38
|
- - ~>
|
51
39
|
- !ruby/object:Gem::Version
|
52
|
-
version:
|
53
|
-
|
54
|
-
type: :development
|
40
|
+
version: 2.4.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
55
42
|
name: webmock
|
56
43
|
requirement: !ruby/object:Gem::Requirement
|
57
44
|
requirements:
|
58
45
|
- - ~>
|
59
46
|
- !ruby/object:Gem::Version
|
60
47
|
version: 1.9.3
|
61
|
-
|
62
|
-
- !ruby/object:Gem::Dependency
|
48
|
+
type: :development
|
63
49
|
prerelease: false
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
65
51
|
requirements:
|
66
|
-
- -
|
52
|
+
- - ~>
|
67
53
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
69
|
-
|
70
|
-
type: :development
|
54
|
+
version: 1.9.3
|
55
|
+
- !ruby/object:Gem::Dependency
|
71
56
|
name: pry
|
72
57
|
requirement: !ruby/object:Gem::Requirement
|
73
58
|
requirements:
|
74
|
-
- -
|
59
|
+
- - '>='
|
75
60
|
- !ruby/object:Gem::Version
|
76
61
|
version: '0'
|
77
|
-
|
78
|
-
- !ruby/object:Gem::Dependency
|
62
|
+
type: :development
|
79
63
|
prerelease: false
|
80
64
|
version_requirements: !ruby/object:Gem::Requirement
|
81
65
|
requirements:
|
82
|
-
- -
|
66
|
+
- - '>='
|
83
67
|
- !ruby/object:Gem::Version
|
84
|
-
version: 0
|
85
|
-
|
86
|
-
type: :runtime
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
87
70
|
name: httparty
|
88
71
|
requirement: !ruby/object:Gem::Requirement
|
89
72
|
requirements:
|
90
73
|
- - ~>
|
91
74
|
- !ruby/object:Gem::Version
|
92
75
|
version: 0.10.0
|
93
|
-
|
94
|
-
- !ruby/object:Gem::Dependency
|
76
|
+
type: :runtime
|
95
77
|
prerelease: false
|
96
78
|
version_requirements: !ruby/object:Gem::Requirement
|
97
79
|
requirements:
|
98
|
-
- -
|
80
|
+
- - ~>
|
99
81
|
- !ruby/object:Gem::Version
|
100
|
-
version:
|
101
|
-
|
102
|
-
type: :runtime
|
82
|
+
version: 0.10.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
103
84
|
name: hashie
|
104
85
|
requirement: !ruby/object:Gem::Requirement
|
105
86
|
requirements:
|
106
|
-
- -
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.2.0
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
107
95
|
- !ruby/object:Gem::Version
|
108
96
|
version: 1.2.0
|
109
|
-
none: false
|
110
97
|
description: A client for the Bandsintown API.
|
111
98
|
email:
|
112
99
|
- ben@scheirman.com
|
@@ -144,29 +131,29 @@ files:
|
|
144
131
|
- spec/intown/event_spec.rb
|
145
132
|
- spec/intown/intown_spec.rb
|
146
133
|
- spec/spec_helper.rb
|
134
|
+
- spec/support/shared_examples.rb
|
147
135
|
homepage: https://github.com/subdigital/intown
|
148
136
|
licenses: []
|
137
|
+
metadata: {}
|
149
138
|
post_install_message:
|
150
139
|
rdoc_options: []
|
151
140
|
require_paths:
|
152
141
|
- lib
|
153
142
|
required_ruby_version: !ruby/object:Gem::Requirement
|
154
143
|
requirements:
|
155
|
-
- -
|
144
|
+
- - '>='
|
156
145
|
- !ruby/object:Gem::Version
|
157
146
|
version: '0'
|
158
|
-
none: false
|
159
147
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
160
148
|
requirements:
|
161
|
-
- -
|
149
|
+
- - '>='
|
162
150
|
- !ruby/object:Gem::Version
|
163
151
|
version: '0'
|
164
|
-
none: false
|
165
152
|
requirements: []
|
166
153
|
rubyforge_project:
|
167
|
-
rubygems_version:
|
154
|
+
rubygems_version: 2.0.2
|
168
155
|
signing_key:
|
169
|
-
specification_version:
|
156
|
+
specification_version: 4
|
170
157
|
summary: Supports Bandsintown API version 1.1
|
171
158
|
test_files:
|
172
159
|
- spec/acceptance/fetch_artist_by_name_spec.rb
|
@@ -185,4 +172,4 @@ test_files:
|
|
185
172
|
- spec/intown/event_spec.rb
|
186
173
|
- spec/intown/intown_spec.rb
|
187
174
|
- spec/spec_helper.rb
|
188
|
-
|
175
|
+
- spec/support/shared_examples.rb
|