songkickr 0.4.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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