songkickr 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -2,6 +2,7 @@ language: ruby
2
2
  rvm:
3
3
  - 1.9.3
4
4
  - 2.0.0
5
+ - 2.1.0
5
6
  - jruby-19mode
6
7
  - rbx-19mode
7
8
  # - ruby-head
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- songkickr (0.4.1)
5
- httparty (~> 0.8.3)
4
+ songkickr (0.5.0)
5
+ httparty (>= 0.5.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -18,15 +18,15 @@ GEM
18
18
  crack (0.4.1)
19
19
  safe_yaml (~> 0.9.0)
20
20
  fakeweb (1.3.0)
21
- httparty (0.8.3)
22
- multi_json (~> 1.0)
23
- multi_xml
21
+ httparty (0.13.1)
22
+ json (~> 1.8)
23
+ multi_xml (>= 0.5.2)
24
24
  i18n (0.6.4)
25
25
  json (1.8.0)
26
26
  method_source (0.8.2)
27
27
  minitest (4.7.5)
28
- multi_json (1.7.7)
29
- multi_xml (0.5.4)
28
+ multi_json (1.9.2)
29
+ multi_xml (0.5.5)
30
30
  pry (0.9.12.2)
31
31
  coderay (~> 1.0.5)
32
32
  method_source (~> 0.8)
@@ -37,8 +37,16 @@ module Songkickr
37
37
  #
38
38
  # ==== Query Parameters
39
39
  # * +artist_name+ - Name of an artist. <em>Ex. 'Lady Gaga', 'Slayer', 'Atmosphere'</em>
40
+ # * +page+ - Page number
41
+ # * +per_page+ - Number of results per page, max 50.
40
42
  def artist_search(query = {})
41
- result = self.class.get("/search/artists.json", :query => { :query => query })
43
+ if query.is_a? String
44
+ result = self.class.get("/search/artists.json", :query => { :query => query })
45
+ elsif query.is_a? Hash
46
+ artist_name = query.delete(:artist_name)
47
+ result = self.class.get("/search/artists.json", :query => query.merge(:query => artist_name))
48
+ end
49
+
42
50
  Songkickr::ArtistResult.new result
43
51
  end
44
52
 
@@ -69,19 +77,47 @@ module Songkickr
69
77
  # http://www.songkick.com/developer/location-search
70
78
  #
71
79
  # === Parameters
72
- # * +query+ - A hash of query parameters, see below for options.
80
+ # * +query+ - A hash of query parameters, see below for options. Note: Only one of name, location, or ip may be used at a time.
73
81
  #
74
82
  # ==== Query Parameters
75
- # * +name+ - Metro area or city named 'location_name' string <em>Ex. 'Minneapolis, Nashville, or London'</em>
83
+ # * +name+ - Metro area or city named 'location_name' string <em>Ex. 'Minneapolis', 'Nashville', or 'London'</em>.
76
84
  # * +location+ - 'geo:{lat,lng}' string <em>Ex. 'geo:{-0.128,51.5078}'</em>
77
85
  # * +ip+ - 'ip:{ip-addr}' string <em>Ex. 'ip:{123.123.123.123}'</em>
78
86
  # * +page+ - Page number
79
87
  # * +per_page+ - Number of results per page, max 50.
80
88
  def location_search(query = {})
81
- result = get("/search/locations.json", :query => { :query => query })
89
+ result = get("/search/locations.json", :query => query)
82
90
  Songkickr::LocationResult.new result
83
91
  end
84
92
 
93
+ # Location Search by geographic coordinates
94
+ #
95
+ # === Parameters
96
+ # * +latitude+ - float <em>Ex. 44.67</em>
97
+ # * +longitude+ - float <em>Ex. -19.35</em>
98
+ # * +options+ - hash of additional options such as page and per_page
99
+ def location_search_geo(latitude, longitude, options = {})
100
+ location_search(options.merge(:location => "geo:#{latitude},#{longitude}"))
101
+ end
102
+
103
+ # Location Search by IP address
104
+ #
105
+ # === Parameters
106
+ # * +ip_address+ string <em>Ex. '123.123.123.123'</em>
107
+ # * +options+ - hash of additional options such as page and per_page
108
+ def location_search_ip(ip_address, options)
109
+ location_search(options.merge(:location => "geo:#{latitude},#{longitude}"))
110
+ end
111
+
112
+ # Location Search by metro area name
113
+ #
114
+ # === Parameters
115
+ # * +metro_area_name+ - Metro area or city named 'location_name' string <em>Ex. 'Minneapolis', 'Nashville', or 'London'</em>.
116
+ # * +options+ - hash of additional options such as page and per_page
117
+ def location_search_metro_area_name(metro_area_name)
118
+ location_search(options.merge(:query => metro_area_name))
119
+ end
120
+
85
121
  # ==== Metro Area Events (Upcoming)
86
122
  # Returns an array of Events.
87
123
  #
@@ -115,9 +151,14 @@ module Songkickr
115
151
  #
116
152
  # === Parameters
117
153
  #
118
- # * +query+ -
154
+ # * +query+ - A hash of query parameters, see below for options.
155
+ #
156
+ # ==== Query Parameters
157
+ # * +query+ - Venue name search string
158
+ # * +page+ - Page number
159
+ # * +per_page+ - Number of results per page, max 50.
119
160
  def venue_search(query)
120
- result = get("/search/venues.json", :query => { :query => query })
161
+ result = get("/search/venues.json", :query => query)
121
162
  Songkickr::VenueResult.new result
122
163
  end
123
164
  end
@@ -3,7 +3,6 @@ module Songkickr
3
3
  attr_accessor :page, :per_page, :total_entries, :results, :result_type, :result_key_string, :status
4
4
 
5
5
  def initialize(result_hash = {})
6
- # @result_type = "Event" or "MetroArea"
7
6
  results_page = result_hash["resultsPage"]
8
7
 
9
8
  if results_page
@@ -1,3 +1,3 @@
1
1
  module Songkickr
2
- VERSION = "0.4.1"
2
+ VERSION = "0.5.0"
3
3
  end
data/songkickr.gemspec CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
21
21
  gem.add_development_dependency 'vcr', "~> 2.5.0"
22
22
  gem.add_development_dependency 'pry'
23
23
 
24
- gem.add_dependency 'httparty', '~> 0.8.3'
24
+ gem.add_dependency 'httparty', '>= 0.5.0'
25
25
 
26
26
  gem.files = `git ls-files`.split($/)
27
27
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
@@ -0,0 +1,39 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.songkick.com/api/3.0/search/artists.json?apikey=hFYxiInE4DBpH5KL&query=Counterparts
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ date:
16
+ - Thu, 17 Apr 2014 02:06:48 GMT
17
+ status:
18
+ - 200 OK
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ cache-control:
22
+ - private, max-age=3600
23
+ expires:
24
+ - Thu, 17 Apr 2014 03:06:48 GMT
25
+ vary:
26
+ - Accept-Encoding
27
+ connection:
28
+ - close
29
+ transfer-encoding:
30
+ - chunked
31
+ body:
32
+ encoding: US-ASCII
33
+ string: ! '{"resultsPage":{"status":"ok","results":{"artist":[{"onTourUntil":"2014-06-20","identifier":[{"eventsHref":"http://api.songkick.com/api/3.0/artists/mbid:4b0dd5e7-c795-42bd-8311-bc9f71fabd0a/calendar.json","setlistsHref":"http://api.songkick.com/api/3.0/artists/mbid:4b0dd5e7-c795-42bd-8311-bc9f71fabd0a/setlists.json","mbid":"4b0dd5e7-c795-42bd-8311-bc9f71fabd0a","href":"http://api.songkick.com/api/3.0/artists/mbid:4b0dd5e7-c795-42bd-8311-bc9f71fabd0a.json"}],"uri":"http://www.songkick.com/artists/231185-counterparts?utm_source=4791&utm_medium=partner","displayName":"Counterparts","id":231185},{"uri":"http://www.songkick.com/artists/6061844-counterparts-facts?utm_source=4791&utm_medium=partner","displayName":"Counterparts
34
+ Facts","onTourUntil":null,"identifier":[],"id":6061844},{"onTourUntil":"2014-05-30","identifier":[],"uri":"http://www.songkick.com/artists/8014278-counterparts-structures?utm_source=4791&utm_medium=partner","displayName":"Counterparts
35
+ Structures","id":8014278},{"onTourUntil":null,"identifier":[],"uri":"http://www.songkick.com/artists/7085559-hundredth-counterparts-being-as-an-ocean-heart-to-heart?utm_source=4791&utm_medium=partner","displayName":"Hundredth!
36
+ Counterparts. Being As an Ocean. Heart to Heart","id":7085559}]},"perPage":50,"page":1,"totalEntries":4}}'
37
+ http_version: '1.1'
38
+ recorded_at: Thu, 17 Apr 2014 02:06:47 GMT
39
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,39 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.songkick.com/api/3.0/search/artists.json?apikey=hFYxiInE4DBpH5KL&query=Counterparts
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ date:
16
+ - Thu, 17 Apr 2014 02:06:48 GMT
17
+ status:
18
+ - 200 OK
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ cache-control:
22
+ - private, max-age=3600
23
+ expires:
24
+ - Thu, 17 Apr 2014 03:06:48 GMT
25
+ vary:
26
+ - Accept-Encoding
27
+ connection:
28
+ - close
29
+ transfer-encoding:
30
+ - chunked
31
+ body:
32
+ encoding: US-ASCII
33
+ string: ! '{"resultsPage":{"status":"ok","results":{"artist":[{"onTourUntil":"2014-06-20","identifier":[{"eventsHref":"http://api.songkick.com/api/3.0/artists/mbid:4b0dd5e7-c795-42bd-8311-bc9f71fabd0a/calendar.json","setlistsHref":"http://api.songkick.com/api/3.0/artists/mbid:4b0dd5e7-c795-42bd-8311-bc9f71fabd0a/setlists.json","mbid":"4b0dd5e7-c795-42bd-8311-bc9f71fabd0a","href":"http://api.songkick.com/api/3.0/artists/mbid:4b0dd5e7-c795-42bd-8311-bc9f71fabd0a.json"}],"uri":"http://www.songkick.com/artists/231185-counterparts?utm_source=4791&utm_medium=partner","displayName":"Counterparts","id":231185},{"uri":"http://www.songkick.com/artists/6061844-counterparts-facts?utm_source=4791&utm_medium=partner","displayName":"Counterparts
34
+ Facts","onTourUntil":null,"identifier":[],"id":6061844},{"onTourUntil":"2014-05-30","identifier":[],"uri":"http://www.songkick.com/artists/8014278-counterparts-structures?utm_source=4791&utm_medium=partner","displayName":"Counterparts
35
+ Structures","id":8014278},{"onTourUntil":null,"identifier":[],"uri":"http://www.songkick.com/artists/7085559-hundredth-counterparts-being-as-an-ocean-heart-to-heart?utm_source=4791&utm_medium=partner","displayName":"Hundredth!
36
+ Counterparts. Being As an Ocean. Heart to Heart","id":7085559}]},"perPage":50,"page":1,"totalEntries":4}}'
37
+ http_version: '1.1'
38
+ recorded_at: Thu, 17 Apr 2014 02:06:47 GMT
39
+ recorded_with: VCR 2.5.0
@@ -13,7 +13,7 @@ http_interactions:
13
13
  message: OK
14
14
  headers:
15
15
  date:
16
- - Sun, 21 Jul 2013 15:57:28 GMT
16
+ - Fri, 18 Apr 2014 02:08:15 GMT
17
17
  status:
18
18
  - 200 OK
19
19
  content-type:
@@ -21,7 +21,7 @@ http_interactions:
21
21
  cache-control:
22
22
  - private, max-age=3600
23
23
  expires:
24
- - Sun, 21 Jul 2013 16:57:28 GMT
24
+ - Fri, 18 Apr 2014 03:08:15 GMT
25
25
  vary:
26
26
  - Accept-Encoding
27
27
  connection:
@@ -36,7 +36,9 @@ http_interactions:
36
36
  St. Paul"},"metroArea":{"lat":44.9801,"lng":-93.2519,"country":{"displayName":"US"},"uri":"http://www.songkick.com/metro_areas/35130-us-twin-cities?utm_source=4791&utm_medium=partner","state":{"displayName":"MN"},"displayName":"Twin
37
37
  Cities","id":35130}},{"metroArea":{"state":{"displayName":"MN"},"country":{"displayName":"US"},"lat":45.01149,"lng":-92.993538,"displayName":"North
38
38
  Saint Paul","uri":"http://www.songkick.com/metro_areas/88071-us-north-saint-paul?utm_source=4791&utm_medium=partner","id":88071},"city":{"state":{"displayName":"MN"},"country":{"displayName":"US"},"lat":45.01149,"lng":-92.993538,"displayName":"North
39
- Saint Paul"}}]},"perPage":50,"page":1,"totalEntries":3}}'
39
+ Saint Paul"}},{"metroArea":{"lat":44.9801,"lng":-93.2519,"country":{"displayName":"US"},"uri":"http://www.songkick.com/metro_areas/35130-us-twin-cities?utm_source=4791&utm_medium=partner","displayName":"Twin
40
+ Cities","state":{"displayName":"MN"},"id":35130},"city":{"lat":null,"lng":null,"country":{"displayName":"US"},"displayName":"St
41
+ Paul Park","state":{"displayName":"MN"}}}]},"perPage":50,"page":1,"totalEntries":4}}'
40
42
  http_version: '1.1'
41
- recorded_at: Sun, 21 Jul 2013 15:57:31 GMT
43
+ recorded_at: Fri, 18 Apr 2014 02:08:13 GMT
42
44
  recorded_with: VCR 2.5.0
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.songkick.com/api/3.0/search/locations.json?apikey=hFYxiInE4DBpH5KL&location=geo%3A51.5078%2C-0.128
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ date:
16
+ - Fri, 18 Apr 2014 02:16:01 GMT
17
+ status:
18
+ - 200 OK
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ cache-control:
22
+ - private, max-age=3600
23
+ expires:
24
+ - Fri, 18 Apr 2014 03:16:01 GMT
25
+ vary:
26
+ - Accept-Encoding
27
+ connection:
28
+ - close
29
+ transfer-encoding:
30
+ - chunked
31
+ body:
32
+ encoding: US-ASCII
33
+ string: ! '{"resultsPage":{"status":"ok","results":{"location":[{"city":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"displayName":"London"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.5333,"lng":-0.1,"country":{"displayName":"UK"},"displayName":"Islington"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.55,"lng":-0.183333,"country":{"displayName":"UK"},"displayName":"Hampstead"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.5,"lng":-0.216667,"country":{"displayName":"UK"},"displayName":"Shepherds
34
+ Bush"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.55,"lng":-0.216667,"country":{"displayName":"UK"},"displayName":"Cricklewood"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.4667,"lng":0.0,"country":{"displayName":"UK"},"displayName":"Greenwich"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.45,"lng":-0.283333,"country":{"displayName":"UK"},"displayName":"Richmond"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.55,"lng":0.05,"country":{"displayName":"UK"},"displayName":"Ilford"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.3833,"lng":-0.1,"country":{"displayName":"UK"},"displayName":"Croydon"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.4333,"lng":-0.316667,"country":{"displayName":"UK"},"displayName":"Twickenham"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.407,"lng":-0.297,"country":{"displayName":"UK"},"displayName":"Kingston
35
+ Upon Thames"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.65,"lng":-0.266667,"country":{"displayName":"UK"},"displayName":"Borehamwood"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.3667,"lng":0.016667,"country":{"displayName":"UK"},"displayName":"Hayes"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.6833,"lng":-0.166667,"country":{"displayName":"UK"},"displayName":"Potters
36
+ Bar"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.4167,"lng":0.116667,"country":{"displayName":"UK"},"displayName":"Sidcup"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"displayName":"Coulsdon","lat":51.3211,"country":{"displayName":"UK"},"lng":-0.1386},"metroArea":{"displayName":"London","lat":51.5078,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","lng":-0.128,"id":24426}},{"city":{"lat":51.55,"lng":0.166667,"country":{"displayName":"UK"},"displayName":"Dagenham"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.7,"lng":-0.033333,"country":{"displayName":"UK"},"displayName":"Cheshunt"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.3167,"lng":-0.266667,"country":{"displayName":"UK"},"displayName":"Epsom"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.5833,"lng":0.2,"country":{"displayName":"UK"},"displayName":"Romford"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.45,"lng":0.216667,"country":{"displayName":"UK"},"displayName":"Dartford"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.55,"lng":-0.483333,"country":{"displayName":"UK"},"displayName":"Uxbridge"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.6667,"lng":-0.4,"country":{"displayName":"UK"},"displayName":"Watford"},"metroArea":{"lat":51.874,"lng":-0.424,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24546-uk-luton?utm_source=4791&utm_medium=partner","displayName":"Luton","id":24546}},{"metroArea":{"country":{"displayName":"UK"},"lat":51.443089,"lng":0.24521,"displayName":"Stone","uri":"http://www.songkick.com/metro_areas/53753-uk-stone?utm_source=4791&utm_medium=partner","id":53753},"city":{"country":{"displayName":"UK"},"lat":51.443089,"lng":0.24521,"displayName":"Stone"}},{"metroArea":{"country":{"displayName":"UK"},"lat":51.300571,"lng":-0.32729,"displayName":"Leatherhead","uri":"http://www.songkick.com/metro_areas/35830-uk-leatherhead?utm_source=4791&utm_medium=partner","id":35830},"city":{"country":{"displayName":"UK"},"lat":51.300571,"lng":-0.32729,"displayName":"Leatherhead"}},{"city":{"lat":51.7,"lng":0.116667,"country":{"displayName":"UK"},"displayName":"Epping"},"metroArea":{"lat":51.7333,"lng":0.483333,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24602-uk-chelmsford?utm_source=4791&utm_medium=partner","displayName":"Chelmsford","id":24602}},{"city":{"lat":51.6333,"lng":-0.466667,"country":{"displayName":"UK"},"displayName":"Rickmansworth"},"metroArea":{"lat":51.874,"lng":-0.424,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24546-uk-luton?utm_source=4791&utm_medium=partner","displayName":"Luton","id":24546}},{"metroArea":{"country":{"displayName":"UK"},"lat":51.740761,"lng":-0.25259,"displayName":"Colney
37
+ Heath","uri":"http://www.songkick.com/metro_areas/58199-uk-colney-heath?utm_source=4791&utm_medium=partner","id":58199},"city":{"country":{"displayName":"UK"},"lat":51.740761,"lng":-0.25259,"displayName":"Colney
38
+ Heath"}},{"city":{"lat":51.4333,"lng":-0.516667,"country":{"displayName":"UK"},"displayName":"Staines"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.3667,"lng":-0.466667,"country":{"displayName":"UK"},"displayName":"Weybridge"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.75,"lng":0.0,"country":{"displayName":"UK"},"displayName":"Hoddesdon"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"metroArea":{"country":{"displayName":"UK"},"lat":51.50201,"lng":-0.54254,"displayName":"Langley","uri":"http://www.songkick.com/metro_areas/76501-uk-langley?utm_source=4791&utm_medium=partner","id":76501},"city":{"country":{"displayName":"UK"},"lat":51.50201,"lng":-0.54254,"displayName":"Langley"}},{"metroArea":{"country":{"displayName":"UK"},"lat":51.48064,"lng":0.28643,"displayName":"West
39
+ Thurrock","uri":"http://www.songkick.com/metro_areas/77666-uk-west-thurrock?utm_source=4791&utm_medium=partner","id":77666},"city":{"country":{"displayName":"UK"},"lat":51.48064,"lng":0.28643,"displayName":"West
40
+ Thurrock"}},{"metroArea":{"country":{"displayName":"UK"},"lat":51.24485,"lng":-0.16302,"displayName":"Redhill","uri":"http://www.songkick.com/metro_areas/25643-uk-redhill?utm_source=4791&utm_medium=partner","id":25643},"city":{"country":{"displayName":"UK"},"lat":51.24485,"lng":-0.16302,"displayName":"Redhill"}},{"metroArea":{"country":{"displayName":"UK"},"lat":51.26886,"lng":0.06855,"displayName":"Westerham","uri":"http://www.songkick.com/metro_areas/77681-uk-westerham?utm_source=4791&utm_medium=partner","id":77681},"city":{"country":{"displayName":"UK"},"lat":51.26886,"lng":0.06855,"displayName":"Westerham"}},{"metroArea":{"country":{"displayName":"UK"},"lat":51.342838,"lng":-0.47542,"displayName":"Byfleet","uri":"http://www.songkick.com/metro_areas/75496-uk-byfleet?utm_source=4791&utm_medium=partner","id":75496},"city":{"country":{"displayName":"UK"},"lat":51.342838,"lng":-0.47542,"displayName":"Byfleet"}},{"metroArea":{"country":{"displayName":"UK"},"lat":51.430889,"lng":-0.54748,"displayName":"Egham","uri":"http://www.songkick.com/metro_areas/55867-uk-egham?utm_source=4791&utm_medium=partner","id":55867},"city":{"country":{"displayName":"UK"},"lat":51.430889,"lng":-0.54748,"displayName":"Egham"}},{"city":{"lat":51.755,"lng":-0.336,"country":{"displayName":"UK"},"displayName":"St.
41
+ Albans"},"metroArea":{"lat":51.755,"lng":-0.336,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24620-uk-st-albans?utm_source=4791&utm_medium=partner","displayName":"St.
42
+ Albans","id":24620}},{"city":{"lat":51.2333,"lng":-0.216667,"country":{"displayName":"UK"},"displayName":"Reigate"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"metroArea":{"country":{"displayName":"UK"},"lat":51.450562,"lng":0.31749,"displayName":"Northfleet","uri":"http://www.songkick.com/metro_areas/76891-uk-northfleet?utm_source=4791&utm_medium=partner","id":76891},"city":{"country":{"displayName":"UK"},"lat":51.450562,"lng":0.31749,"displayName":"Northfleet"}},{"city":{"lat":51.5,"lng":-0.583333,"country":{"displayName":"UK"},"displayName":"Slough"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"city":{"lat":51.2333,"lng":-0.25,"country":{"displayName":"UK"},"displayName":"Betchworth"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"metroArea":{"country":{"displayName":"UK"},"lat":51.323391,"lng":-0.47717,"displayName":"Wisley","uri":"http://www.songkick.com/metro_areas/77761-uk-wisley?utm_source=4791&utm_medium=partner","id":77761},"city":{"country":{"displayName":"UK"},"lat":51.323391,"lng":-0.47717,"displayName":"Wisley"}},{"city":{"lat":51.4833,"lng":0.333333,"country":{"displayName":"UK"},"displayName":"Grays"},"metroArea":{"lat":51.537,"lng":0.733,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24532-uk-southend-on-sea?utm_source=4791&utm_medium=partner","displayName":"Southend
43
+ On Sea","id":24532}},{"metroArea":{"country":{"displayName":"UK"},"lat":51.271721,"lng":-0.39535,"displayName":"Surrey","uri":"http://www.songkick.com/metro_areas/25805-uk-surrey?utm_source=4791&utm_medium=partner","id":25805},"city":{"country":{"displayName":"UK"},"lat":51.271721,"lng":-0.39535,"displayName":"Surrey"}},{"city":{"lat":51.8,"lng":-0.066667,"country":{"displayName":"UK"},"displayName":"Hertford"},"metroArea":{"lat":51.874,"lng":-0.424,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24546-uk-luton?utm_source=4791&utm_medium=partner","displayName":"Luton","id":24546}},{"city":{"lat":51.4833,"lng":-0.6,"country":{"displayName":"UK"},"displayName":"Windsor"},"metroArea":{"lat":51.5078,"lng":-0.128,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24426-uk-london?utm_source=4791&utm_medium=partner","displayName":"London","id":24426}},{"metroArea":{"country":{"displayName":"UK"},"lat":51.298389,"lng":-0.46202,"displayName":"Ockham","uri":"http://www.songkick.com/metro_areas/76916-uk-ockham?utm_source=4791&utm_medium=partner","id":76916},"city":{"country":{"displayName":"UK"},"lat":51.298389,"lng":-0.46202,"displayName":"Ockham"}},{"city":{"lat":51.6167,"lng":0.316667,"country":{"displayName":"UK"},"displayName":"Brentwood"},"metroArea":{"lat":51.7333,"lng":0.483333,"country":{"displayName":"UK"},"uri":"http://www.songkick.com/metro_areas/24602-uk-chelmsford?utm_source=4791&utm_medium=partner","displayName":"Chelmsford","id":24602}},{"metroArea":{"country":{"displayName":"UK"},"lat":51.80143,"lng":-0.20573,"displayName":"Welwyn
44
+ Garden City","uri":"http://www.songkick.com/metro_areas/55989-uk-welwyn-garden-city?utm_source=4791&utm_medium=partner","id":55989},"city":{"country":{"displayName":"UK"},"lat":51.80143,"lng":-0.20573,"displayName":"Welwyn
45
+ Garden City"}}]},"perPage":50,"page":1,"totalEntries":570}}'
46
+ http_version: '1.1'
47
+ recorded_at: Fri, 18 Apr 2014 02:16:00 GMT
48
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.songkick.com/api/3.0/search/locations.json?apikey=hFYxiInE4DBpH5KL&query=St.%20Paul%2C%20MN&per_page=2
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ date:
16
+ - Fri, 18 Apr 2014 02:08:15 GMT
17
+ status:
18
+ - 200 OK
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ cache-control:
22
+ - private, max-age=3600
23
+ expires:
24
+ - Fri, 18 Apr 2014 03:08:15 GMT
25
+ vary:
26
+ - Accept-Encoding
27
+ connection:
28
+ - close
29
+ transfer-encoding:
30
+ - chunked
31
+ body:
32
+ encoding: US-ASCII
33
+ string: ! '{"resultsPage":{"status":"ok","results":{"location":[{"city":{"lat":44.9444,"lng":-93.0931,"country":{"displayName":"US"},"state":{"displayName":"MN"},"displayName":"St.
34
+ Paul"},"metroArea":{"lat":44.9801,"lng":-93.2519,"country":{"displayName":"US"},"uri":"http://www.songkick.com/metro_areas/35130-us-twin-cities?utm_source=4791&utm_medium=partner","state":{"displayName":"MN"},"displayName":"Twin
35
+ Cities","id":35130}},{"city":{"lat":null,"lng":null,"country":{"displayName":"US"},"state":{"displayName":"MN"},"displayName":"South
36
+ St. Paul"},"metroArea":{"lat":44.9801,"lng":-93.2519,"country":{"displayName":"US"},"uri":"http://www.songkick.com/metro_areas/35130-us-twin-cities?utm_source=4791&utm_medium=partner","state":{"displayName":"MN"},"displayName":"Twin
37
+ Cities","id":35130}}]},"perPage":2,"page":1,"totalEntries":4}}'
38
+ http_version: '1.1'
39
+ recorded_at: Fri, 18 Apr 2014 02:08:14 GMT
40
+ recorded_with: VCR 2.5.0
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: http://api.songkick.com/api/3.0/search/artists.json?apikey=hFYxiInE4DBpH5KL&query=Counterparts
5
+ uri: http://api.songkick.com/api/3.0/search/artists.json?apikey=hFYxiInE4DBpH5KL&per_page=2&query=Counterparts
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -13,7 +13,7 @@ http_interactions:
13
13
  message: OK
14
14
  headers:
15
15
  date:
16
- - Sun, 21 Jul 2013 15:47:07 GMT
16
+ - Thu, 17 Apr 2014 02:06:49 GMT
17
17
  status:
18
18
  - 200 OK
19
19
  content-type:
@@ -21,7 +21,7 @@ http_interactions:
21
21
  cache-control:
22
22
  - private, max-age=3600
23
23
  expires:
24
- - Sun, 21 Jul 2013 16:47:07 GMT
24
+ - Thu, 17 Apr 2014 03:06:49 GMT
25
25
  vary:
26
26
  - Accept-Encoding
27
27
  connection:
@@ -30,9 +30,8 @@ http_interactions:
30
30
  - chunked
31
31
  body:
32
32
  encoding: US-ASCII
33
- string: ! '{"resultsPage":{"status":"ok","results":{"artist":[{"onTourUntil":"2013-09-25","identifier":[{"eventsHref":"http://api.songkick.com/api/3.0/artists/mbid:4b0dd5e7-c795-42bd-8311-bc9f71fabd0a/calendar.json","setlistsHref":"http://api.songkick.com/api/3.0/artists/mbid:4b0dd5e7-c795-42bd-8311-bc9f71fabd0a/setlists.json","mbid":"4b0dd5e7-c795-42bd-8311-bc9f71fabd0a","href":"http://api.songkick.com/api/3.0/artists/mbid:4b0dd5e7-c795-42bd-8311-bc9f71fabd0a.json"}],"displayName":"Counterparts","uri":"http://www.songkick.com/artists/231185-counterparts?utm_source=4791&utm_medium=partner","id":231185},{"uri":"http://www.songkick.com/artists/6061844-counterparts-facts?utm_source=4791&utm_medium=partner","displayName":"Counterparts
34
- Facts","onTourUntil":null,"identifier":[],"id":6061844},{"identifier":[],"displayName":"Hundredth!
35
- Counterparts. Being As an Ocean. Heart to Heart","uri":"http://www.songkick.com/artists/7085559-hundredth-counterparts-being-as-an-ocean-heart-to-heart?utm_source=4791&utm_medium=partner","onTourUntil":"2013-07-25","id":7085559}]},"perPage":50,"page":1,"totalEntries":3}}'
33
+ string: ! '{"resultsPage":{"status":"ok","results":{"artist":[{"onTourUntil":"2014-06-20","identifier":[{"eventsHref":"http://api.songkick.com/api/3.0/artists/mbid:4b0dd5e7-c795-42bd-8311-bc9f71fabd0a/calendar.json","setlistsHref":"http://api.songkick.com/api/3.0/artists/mbid:4b0dd5e7-c795-42bd-8311-bc9f71fabd0a/setlists.json","mbid":"4b0dd5e7-c795-42bd-8311-bc9f71fabd0a","href":"http://api.songkick.com/api/3.0/artists/mbid:4b0dd5e7-c795-42bd-8311-bc9f71fabd0a.json"}],"uri":"http://www.songkick.com/artists/231185-counterparts?utm_source=4791&utm_medium=partner","displayName":"Counterparts","id":231185},{"uri":"http://www.songkick.com/artists/6061844-counterparts-facts?utm_source=4791&utm_medium=partner","displayName":"Counterparts
34
+ Facts","onTourUntil":null,"identifier":[],"id":6061844}]},"perPage":2,"page":1,"totalEntries":4}}'
36
35
  http_version: '1.1'
37
- recorded_at: Sun, 21 Jul 2013 15:47:10 GMT
36
+ recorded_at: Thu, 17 Apr 2014 02:06:48 GMT
38
37
  recorded_with: VCR 2.5.0
@@ -13,7 +13,7 @@ http_interactions:
13
13
  message: OK
14
14
  headers:
15
15
  date:
16
- - Sun, 28 Jul 2013 05:50:32 GMT
16
+ - Fri, 18 Apr 2014 04:08:27 GMT
17
17
  status:
18
18
  - 200 OK
19
19
  content-type:
@@ -21,7 +21,7 @@ http_interactions:
21
21
  cache-control:
22
22
  - private, max-age=3600
23
23
  expires:
24
- - Sun, 28 Jul 2013 06:50:32 GMT
24
+ - Fri, 18 Apr 2014 05:08:27 GMT
25
25
  vary:
26
26
  - Accept-Encoding
27
27
  connection:
@@ -30,13 +30,14 @@ http_interactions:
30
30
  - chunked
31
31
  body:
32
32
  encoding: US-ASCII
33
- string: ! '{"resultsPage":{"status":"ok","results":{"venue":[{"metroArea":{"uri":"http://www.songkick.com/metro_areas/35130-us-twin-cities?utm_source=4791&utm_medium=partner","id":35130,"state":{"displayName":"MN"},"country":{"displayName":"US"},"displayName":"Twin
34
- Cities"},"lat":44.9434383,"lng":-93.1001467,"zip":"55102","description":"","website":"http://xcelenergycenter.tumblr.com","uri":"http://www.songkick.com/venues/624-xcel-energy-center?utm_source=4791&utm_medium=partner","street":"175
35
- Kellogg Blvd. W.","id":624,"displayName":"Xcel Energy Center","phone":"651-726-8240","capacity":null,"city":{"state":{"displayName":"MN"},"country":{"displayName":"US"},"displayName":"St.
36
- Paul"}},{"street":"175 Kellogg Blvd W","description":"","phone":null,"city":{"country":{"displayName":"US"},"displayName":"North
33
+ string: ! '{"resultsPage":{"status":"ok","results":{"venue":[{"lng":-93.1001467,"street":"175
34
+ Kellogg Blvd. W.","zip":"55102","website":"http://xcelenergycenter.tumblr.com","description":"","phone":"651-726-8240","displayName":"Xcel
35
+ Energy Center","metroArea":{"displayName":"Twin Cities","uri":"http://www.songkick.com/metro_areas/35130-us-twin-cities?utm_source=4791&utm_medium=partner","id":35130,"state":{"displayName":"MN"},"country":{"displayName":"US"}},"capacity":null,"city":{"displayName":"St.
36
+ Paul","state":{"displayName":"MN"},"country":{"displayName":"US"}},"uri":"http://www.songkick.com/venues/624-xcel-energy-center?utm_source=4791&utm_medium=partner","id":624,"lat":44.9434383},{"street":"175
37
+ Kellogg Blvd W","description":"","phone":null,"city":{"country":{"displayName":"US"},"displayName":"North
37
38
  Saint Paul","state":{"displayName":"MN"},"uri":"http://www.songkick.com/metro_areas/88071-us-north-saint-paul?utm_source=4791&utm_medium=partner","id":88071},"metroArea":{"country":{"displayName":"US"},"displayName":"North
38
39
  Saint Paul","state":{"displayName":"MN"},"uri":"http://www.songkick.com/metro_areas/88071-us-north-saint-paul?utm_source=4791&utm_medium=partner","id":88071},"zip":"55102","displayName":"Xcel
39
40
  Energy Center","lat":44.9440098,"capacity":null,"lng":-93.0995822,"website":null,"uri":"http://www.songkick.com/venues/2114344-xcel-energy-center?utm_source=4791&utm_medium=partner","id":2114344}]},"perPage":50,"page":1,"totalEntries":2}}'
40
41
  http_version: '1.1'
41
- recorded_at: Sun, 28 Jul 2013 05:50:33 GMT
42
+ recorded_at: Fri, 18 Apr 2014 04:08:25 GMT
42
43
  recorded_with: VCR 2.5.0
@@ -0,0 +1,43 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.songkick.com/api/3.0/search/venues.json?apikey=hFYxiInE4DBpH5KL&query=Xcel%20Energy%20Center&per_page=2
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ date:
16
+ - Fri, 18 Apr 2014 04:05:12 GMT
17
+ status:
18
+ - 200 OK
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ cache-control:
22
+ - private, max-age=3600
23
+ expires:
24
+ - Fri, 18 Apr 2014 05:05:12 GMT
25
+ vary:
26
+ - Accept-Encoding
27
+ connection:
28
+ - close
29
+ transfer-encoding:
30
+ - chunked
31
+ body:
32
+ encoding: US-ASCII
33
+ string: ! '{"resultsPage":{"status":"ok","results":{"venue":[{"lng":-93.1001467,"street":"175
34
+ Kellogg Blvd. W.","zip":"55102","website":"http://xcelenergycenter.tumblr.com","description":"","phone":"651-726-8240","displayName":"Xcel
35
+ Energy Center","metroArea":{"displayName":"Twin Cities","uri":"http://www.songkick.com/metro_areas/35130-us-twin-cities?utm_source=4791&utm_medium=partner","id":35130,"state":{"displayName":"MN"},"country":{"displayName":"US"}},"capacity":null,"city":{"displayName":"St.
36
+ Paul","state":{"displayName":"MN"},"country":{"displayName":"US"}},"uri":"http://www.songkick.com/venues/624-xcel-energy-center?utm_source=4791&utm_medium=partner","id":624,"lat":44.9434383},{"street":"175
37
+ Kellogg Blvd W","description":"","phone":null,"city":{"country":{"displayName":"US"},"displayName":"North
38
+ Saint Paul","state":{"displayName":"MN"},"uri":"http://www.songkick.com/metro_areas/88071-us-north-saint-paul?utm_source=4791&utm_medium=partner","id":88071},"metroArea":{"country":{"displayName":"US"},"displayName":"North
39
+ Saint Paul","state":{"displayName":"MN"},"uri":"http://www.songkick.com/metro_areas/88071-us-north-saint-paul?utm_source=4791&utm_medium=partner","id":88071},"zip":"55102","displayName":"Xcel
40
+ Energy Center","lat":44.9440098,"capacity":null,"lng":-93.0995822,"website":null,"uri":"http://www.songkick.com/venues/2114344-xcel-energy-center?utm_source=4791&utm_medium=partner","id":2114344}]},"perPage":2,"page":1,"totalEntries":2}}'
41
+ http_version: '1.1'
42
+ recorded_at: Fri, 18 Apr 2014 04:05:11 GMT
43
+ recorded_with: VCR 2.5.0
@@ -131,13 +131,27 @@ class TestRemote < Test::Unit::TestCase
131
131
  end
132
132
  end
133
133
 
134
- should "return the artist when searched" do
135
- VCR.use_cassette('artist_search') do
134
+ should "return the artist when searched as a string" do
135
+ VCR.use_cassette('artist_search_string') do
136
136
  result = @remote.artist_search('Counterparts')
137
137
  assert_equal "Counterparts", result.results.first.display_name
138
138
  end
139
139
  end
140
140
 
141
+ should "return the artist with paged results when searched as a hash" do
142
+ VCR.use_cassette('paged_artist_search') do
143
+ result = @remote.artist_search(:artist_name => 'Counterparts', :per_page => 2)
144
+ assert_equal 2, result.results.size
145
+ end
146
+ end
147
+
148
+ should "return the artist when searched as a hash" do
149
+ VCR.use_cassette('artist_search_hash') do
150
+ result = @remote.artist_search(:artist_name => 'Counterparts')
151
+ assert_equal "Counterparts", result.results.first.display_name
152
+ end
153
+ end
154
+
141
155
  should "return the event when searched" do
142
156
  VCR.use_cassette('event_search') do
143
157
  result = @remote.events(:artist_name => 'Counterparts')
@@ -147,9 +161,26 @@ class TestRemote < Test::Unit::TestCase
147
161
 
148
162
  should "return the location when searched" do
149
163
  VCR.use_cassette('location_search') do
150
- result = @remote.location_search('St. Paul, MN')
164
+ result = @remote.location_search(:query => 'St. Paul, MN')
165
+ assert_equal "St. Paul", result.results.first.city
166
+ assert_equal Songkickr::MetroArea, result.results.first.metro_area.class
167
+ end
168
+ end
169
+
170
+ should "return the locations when searched with pagination" do
171
+ VCR.use_cassette('location_search_paged') do
172
+ result = @remote.location_search(:query => 'St. Paul, MN', :per_page => 2)
151
173
  assert_equal "St. Paul", result.results.first.city
152
174
  assert_equal Songkickr::MetroArea, result.results.first.metro_area.class
175
+ assert_equal 2, result.results.size
176
+ end
177
+ end
178
+
179
+ should "return the locations when searching by geographic location" do
180
+ VCR.use_cassette('location_search_geo') do
181
+ result = @remote.location_search_geo(51.5078, -0.128)
182
+ assert_equal "London", result.results.first.city
183
+ assert_equal Songkickr::MetroArea, result.results.first.metro_area.class
153
184
  end
154
185
  end
155
186
 
@@ -169,8 +200,16 @@ class TestRemote < Test::Unit::TestCase
169
200
 
170
201
  should "return the search venue" do
171
202
  VCR.use_cassette('venue_search') do
172
- result = @remote.venue_search('Xcel Energy Center')
203
+ result = @remote.venue_search(:query => 'Xcel Energy Center')
204
+ assert_equal "Xcel Energy Center", result.results.first.display_name
205
+ end
206
+ end
207
+
208
+ should "return the searched venue with paged results" do
209
+ VCR.use_cassette('venue_search_paged') do
210
+ result = @remote.venue_search(:query => 'Xcel Energy Center', :per_page => 2)
173
211
  assert_equal "Xcel Energy Center", result.results.first.display_name
212
+ assert_equal 2, result.results.size
174
213
  end
175
214
  end
176
215
 
metadata CHANGED
@@ -1,46 +1,52 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: songkickr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Jared Mehle
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-10-18 00:00:00.000000000 Z
12
+ date: 2014-04-19 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: shoulda
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '>='
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: 2.11.0
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - '>='
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: 2.11.0
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: fakeweb
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: 1.3.0
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - '>='
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: 1.3.0
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rdoc
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ~>
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ~>
53
60
  - !ruby/object:Gem::Version
@@ -55,20 +62,23 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: crack
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - '>='
67
+ - - ! '>='
60
68
  - !ruby/object:Gem::Version
61
69
  version: '0'
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - '>='
75
+ - - ! '>='
67
76
  - !ruby/object:Gem::Version
68
77
  version: '0'
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: rake
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ~>
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - ~>
81
92
  - !ruby/object:Gem::Version
@@ -83,6 +94,7 @@ dependencies:
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: test-unit
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
99
  - - ~>
88
100
  - !ruby/object:Gem::Version
@@ -90,6 +102,7 @@ dependencies:
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
107
  - - ~>
95
108
  - !ruby/object:Gem::Version
@@ -97,6 +110,7 @@ dependencies:
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: vcr
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
115
  - - ~>
102
116
  - !ruby/object:Gem::Version
@@ -104,6 +118,7 @@ dependencies:
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
123
  - - ~>
109
124
  - !ruby/object:Gem::Version
@@ -111,32 +126,36 @@ dependencies:
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: pry
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
- - - '>='
131
+ - - ! '>='
116
132
  - !ruby/object:Gem::Version
117
133
  version: '0'
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
121
138
  requirements:
122
- - - '>='
139
+ - - ! '>='
123
140
  - !ruby/object:Gem::Version
124
141
  version: '0'
125
142
  - !ruby/object:Gem::Dependency
126
143
  name: httparty
127
144
  requirement: !ruby/object:Gem::Requirement
145
+ none: false
128
146
  requirements:
129
- - - ~>
147
+ - - ! '>='
130
148
  - !ruby/object:Gem::Version
131
- version: 0.8.3
149
+ version: 0.5.0
132
150
  type: :runtime
133
151
  prerelease: false
134
152
  version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
135
154
  requirements:
136
- - - ~>
155
+ - - ! '>='
137
156
  - !ruby/object:Gem::Version
138
- version: 0.8.3
139
- description: 'A Ruby wrapper around the Songkick API. Visit www.songkick.com/developer
157
+ version: 0.5.0
158
+ description: ! 'A Ruby wrapper around the Songkick API. Visit www.songkick.com/developer
140
159
  for documentation on the Songkick API. '
141
160
  email:
142
161
  - jrmehle@gmail.com
@@ -195,7 +214,8 @@ files:
195
214
  - test/fixtures/resource_not_found.json
196
215
  - test/fixtures/users_attendance_calendar.json
197
216
  - test/fixtures/vcr/artist_events.yml
198
- - test/fixtures/vcr/artist_search.yml
217
+ - test/fixtures/vcr/artist_search_hash.yml
218
+ - test/fixtures/vcr/artist_search_string.yml
199
219
  - test/fixtures/vcr/artists_gigography.yml
200
220
  - test/fixtures/vcr/concert_setlists.yml
201
221
  - test/fixtures/vcr/event_search.yml
@@ -205,7 +225,10 @@ files:
205
225
  - test/fixtures/vcr/invalid_user.yml
206
226
  - test/fixtures/vcr/invalid_venue_id.yml
207
227
  - test/fixtures/vcr/location_search.yml
228
+ - test/fixtures/vcr/location_search_geo.yml
229
+ - test/fixtures/vcr/location_search_paged.yml
208
230
  - test/fixtures/vcr/metro_areas_events.yml
231
+ - test/fixtures/vcr/paged_artist_search.yml
209
232
  - test/fixtures/vcr/similar_artists.yml
210
233
  - test/fixtures/vcr/users_artist_tracking.yml
211
234
  - test/fixtures/vcr/users_attendance.yml
@@ -223,6 +246,7 @@ files:
223
246
  - test/fixtures/vcr/valid_venue.yml
224
247
  - test/fixtures/vcr/venue_calendar.yml
225
248
  - test/fixtures/vcr/venue_search.yml
249
+ - test/fixtures/vcr/venue_search_paged.yml
226
250
  - test/fixtures/venue_1276231.json
227
251
  - test/helper.rb
228
252
  - test/songkickr/test_artist.rb
@@ -237,26 +261,27 @@ files:
237
261
  - test/vcr_helper.rb
238
262
  homepage: http://github.com/jrmehle/songkickr
239
263
  licenses: []
240
- metadata: {}
241
264
  post_install_message:
242
265
  rdoc_options: []
243
266
  require_paths:
244
267
  - lib
245
268
  required_ruby_version: !ruby/object:Gem::Requirement
269
+ none: false
246
270
  requirements:
247
- - - '>='
271
+ - - ! '>='
248
272
  - !ruby/object:Gem::Version
249
273
  version: '0'
250
274
  required_rubygems_version: !ruby/object:Gem::Requirement
275
+ none: false
251
276
  requirements:
252
- - - '>='
277
+ - - ! '>='
253
278
  - !ruby/object:Gem::Version
254
279
  version: '0'
255
280
  requirements: []
256
281
  rubyforge_project:
257
- rubygems_version: 2.1.9
282
+ rubygems_version: 1.8.25
258
283
  signing_key:
259
- specification_version: 4
284
+ specification_version: 3
260
285
  summary: A Ruby wrapper around the Songkick API.
261
286
  test_files:
262
287
  - test/fixtures/event_7391451.json
@@ -268,7 +293,8 @@ test_files:
268
293
  - test/fixtures/resource_not_found.json
269
294
  - test/fixtures/users_attendance_calendar.json
270
295
  - test/fixtures/vcr/artist_events.yml
271
- - test/fixtures/vcr/artist_search.yml
296
+ - test/fixtures/vcr/artist_search_hash.yml
297
+ - test/fixtures/vcr/artist_search_string.yml
272
298
  - test/fixtures/vcr/artists_gigography.yml
273
299
  - test/fixtures/vcr/concert_setlists.yml
274
300
  - test/fixtures/vcr/event_search.yml
@@ -278,7 +304,10 @@ test_files:
278
304
  - test/fixtures/vcr/invalid_user.yml
279
305
  - test/fixtures/vcr/invalid_venue_id.yml
280
306
  - test/fixtures/vcr/location_search.yml
307
+ - test/fixtures/vcr/location_search_geo.yml
308
+ - test/fixtures/vcr/location_search_paged.yml
281
309
  - test/fixtures/vcr/metro_areas_events.yml
310
+ - test/fixtures/vcr/paged_artist_search.yml
282
311
  - test/fixtures/vcr/similar_artists.yml
283
312
  - test/fixtures/vcr/users_artist_tracking.yml
284
313
  - test/fixtures/vcr/users_attendance.yml
@@ -296,6 +325,7 @@ test_files:
296
325
  - test/fixtures/vcr/valid_venue.yml
297
326
  - test/fixtures/vcr/venue_calendar.yml
298
327
  - test/fixtures/vcr/venue_search.yml
328
+ - test/fixtures/vcr/venue_search_paged.yml
299
329
  - test/fixtures/venue_1276231.json
300
330
  - test/helper.rb
301
331
  - test/songkickr/test_artist.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 32f22a8b893cd6fce8e9ae0dc224d6f2678d8ff5
4
- data.tar.gz: 8a716b162776d24ccb1bca9554266d828584be50
5
- SHA512:
6
- metadata.gz: cb4fec6ac524b7829a7ce02bba143f5fe585cc5b6273bfaf97f85c33876b3d41361eb04d2dea15e4154867611d74603bce1098e0ac09ef47952aea4d5617afaf
7
- data.tar.gz: 43a9dd1d22eb2a323c4414a8e7af3b0f84c6e83750a3c04f91adf449615ef1d5a596e9c95740e83498a563ad142ac79e9ae594586b71b5d35e804c0e5453eb26