songkickr 0.3.0 → 0.3.1
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/Gemfile.lock +1 -1
- data/VERSION +1 -1
- data/lib/songkickr/remote.rb +12 -0
- data/songkickr.gemspec +31 -2
- data/test/fixtures/vcr/invalid_artist_id.yml +33 -0
- data/test/fixtures/vcr/valid_artist.yml +36 -0
- data/test/songkickr/test_remote.rb +15 -0
- metadata +149 -3
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
data/lib/songkickr/remote.rb
CHANGED
@@ -69,6 +69,18 @@ module Songkickr
|
|
69
69
|
Songkickr::EventResult.new result
|
70
70
|
end
|
71
71
|
|
72
|
+
# === Artist API
|
73
|
+
# Undocumented, but it works fine
|
74
|
+
#
|
75
|
+
# Returns an artist object
|
76
|
+
#
|
77
|
+
# === Parameters
|
78
|
+
# * +artist_id+ - Songkick artist_id, use artist_search to get it
|
79
|
+
def artist(artist_id)
|
80
|
+
result = get("/artists/#{artist_id}.json")
|
81
|
+
Songkickr::Artist.new result["resultsPage"]["results"]["artist"]
|
82
|
+
end
|
83
|
+
|
72
84
|
# ==== Artist Search API
|
73
85
|
# Returns Artist objects.
|
74
86
|
#
|
data/songkickr.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "songkickr"
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jared Mehle"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-10-19"
|
13
13
|
s.description = "A Ruby wrapper around the Songkick API. Visit www.songkick.com/developer for documentation on the Songkick API. "
|
14
14
|
s.email = "jrmehle@gmail.com"
|
15
15
|
s.executables = ["autospec", "convert_to_should_syntax", "guard", "htmldiff", "httparty", "jeweler", "ldiff", "rake", "rake2thor", "rg", "ri", "rspec", "thor"]
|
@@ -127,9 +127,11 @@ Gem::Specification.new do |s|
|
|
127
127
|
"test/fixtures/no_events.json",
|
128
128
|
"test/fixtures/resource_not_found.json",
|
129
129
|
"test/fixtures/vcr/invalid_api_key.yml",
|
130
|
+
"test/fixtures/vcr/invalid_artist_id.yml",
|
130
131
|
"test/fixtures/vcr/invalid_event_id.yml",
|
131
132
|
"test/fixtures/vcr/invalid_user.yml",
|
132
133
|
"test/fixtures/vcr/invalid_venue_id.yml",
|
134
|
+
"test/fixtures/vcr/valid_artist.yml",
|
133
135
|
"test/fixtures/vcr/valid_event.yml",
|
134
136
|
"test/fixtures/vcr/valid_user.yml",
|
135
137
|
"test/fixtures/vcr/valid_venue.yml",
|
@@ -198,6 +200,15 @@ Gem::Specification.new do |s|
|
|
198
200
|
s.add_development_dependency(%q<shoulda>, [">= 2.11.0"])
|
199
201
|
s.add_development_dependency(%q<fakeweb>, [">= 1.3.0"])
|
200
202
|
s.add_development_dependency(%q<redgreen>, [">= 1.2.2"])
|
203
|
+
s.add_development_dependency(%q<crack>, [">= 0"])
|
204
|
+
s.add_development_dependency(%q<httparty>, [">= 0"])
|
205
|
+
s.add_development_dependency(%q<test-unit>, [">= 0"])
|
206
|
+
s.add_development_dependency(%q<rake>, [">= 0"])
|
207
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
208
|
+
s.add_development_dependency(%q<vcr>, [">= 0"])
|
209
|
+
s.add_development_dependency(%q<shoulda>, [">= 2.11.0"])
|
210
|
+
s.add_development_dependency(%q<fakeweb>, [">= 1.3.0"])
|
211
|
+
s.add_development_dependency(%q<redgreen>, [">= 1.2.2"])
|
201
212
|
else
|
202
213
|
s.add_dependency(%q<songkickr>, [">= 0"])
|
203
214
|
s.add_dependency(%q<shoulda>, [">= 2.11.0"])
|
@@ -245,6 +256,15 @@ Gem::Specification.new do |s|
|
|
245
256
|
s.add_dependency(%q<shoulda>, [">= 2.11.0"])
|
246
257
|
s.add_dependency(%q<fakeweb>, [">= 1.3.0"])
|
247
258
|
s.add_dependency(%q<redgreen>, [">= 1.2.2"])
|
259
|
+
s.add_dependency(%q<crack>, [">= 0"])
|
260
|
+
s.add_dependency(%q<httparty>, [">= 0"])
|
261
|
+
s.add_dependency(%q<test-unit>, [">= 0"])
|
262
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
263
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
264
|
+
s.add_dependency(%q<vcr>, [">= 0"])
|
265
|
+
s.add_dependency(%q<shoulda>, [">= 2.11.0"])
|
266
|
+
s.add_dependency(%q<fakeweb>, [">= 1.3.0"])
|
267
|
+
s.add_dependency(%q<redgreen>, [">= 1.2.2"])
|
248
268
|
end
|
249
269
|
else
|
250
270
|
s.add_dependency(%q<songkickr>, [">= 0"])
|
@@ -293,6 +313,15 @@ Gem::Specification.new do |s|
|
|
293
313
|
s.add_dependency(%q<shoulda>, [">= 2.11.0"])
|
294
314
|
s.add_dependency(%q<fakeweb>, [">= 1.3.0"])
|
295
315
|
s.add_dependency(%q<redgreen>, [">= 1.2.2"])
|
316
|
+
s.add_dependency(%q<crack>, [">= 0"])
|
317
|
+
s.add_dependency(%q<httparty>, [">= 0"])
|
318
|
+
s.add_dependency(%q<test-unit>, [">= 0"])
|
319
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
320
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
321
|
+
s.add_dependency(%q<vcr>, [">= 0"])
|
322
|
+
s.add_dependency(%q<shoulda>, [">= 2.11.0"])
|
323
|
+
s.add_dependency(%q<fakeweb>, [">= 1.3.0"])
|
324
|
+
s.add_dependency(%q<redgreen>, [">= 1.2.2"])
|
296
325
|
end
|
297
326
|
end
|
298
327
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://api.songkick.com/api/3.0/artists/123123123123123123123123.json?apikey=hFYxiInE4DBpH5KL
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 404
|
13
|
+
message: Not Found
|
14
|
+
headers:
|
15
|
+
date:
|
16
|
+
- Fri, 05 Oct 2012 18:31:13 GMT
|
17
|
+
server:
|
18
|
+
- thin 1.2.4 codename Flaming Astroboy
|
19
|
+
content-type:
|
20
|
+
- application/json
|
21
|
+
vary:
|
22
|
+
- Accept-Encoding
|
23
|
+
connection:
|
24
|
+
- close
|
25
|
+
transfer-encoding:
|
26
|
+
- chunked
|
27
|
+
body:
|
28
|
+
encoding: US-ASCII
|
29
|
+
string: ! '{"resultsPage":{"status":"error","error":{"message":"Resource not
|
30
|
+
found"}}}'
|
31
|
+
http_version: '1.1'
|
32
|
+
recorded_at: Fri, 05 Oct 2012 18:31:13 GMT
|
33
|
+
recorded_with: VCR 2.2.4
|
@@ -0,0 +1,36 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://api.songkick.com/api/3.0/artists/253846.json?apikey=hFYxiInE4DBpH5KL
|
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, 05 Oct 2012 18:25:50 GMT
|
17
|
+
server:
|
18
|
+
- thin 1.2.4 codename Flaming Astroboy
|
19
|
+
content-type:
|
20
|
+
- application/json
|
21
|
+
expires:
|
22
|
+
- Fri, 05 Oct 2012 19:25:50 GMT
|
23
|
+
cache-control:
|
24
|
+
- private, max-age=3600
|
25
|
+
vary:
|
26
|
+
- Accept-Encoding
|
27
|
+
connection:
|
28
|
+
- close
|
29
|
+
transfer-encoding:
|
30
|
+
- chunked
|
31
|
+
body:
|
32
|
+
encoding: US-ASCII
|
33
|
+
string: ! '{"resultsPage":{"results":{"artist":{"uri":"http:\/\/www.songkick.com\/artists\/253846-radiohead?utm_source=4791&utm_medium=partner","displayName":"Radiohead","id":253846,"onTourUntil":"2012-11-17","identifier":[{"href":"http:\/\/api.songkick.com\/api\/3.0\/artists\/mbid:a74b1b7f-71a5-4011-9441-d0b5e4122711.json","eventsHref":"http:\/\/api.songkick.com\/api\/3.0\/artists\/mbid:a74b1b7f-71a5-4011-9441-d0b5e4122711\/calendar.json","mbid":"a74b1b7f-71a5-4011-9441-d0b5e4122711","setlistsHref":"http:\/\/api.songkick.com\/api\/3.0\/artists\/mbid:a74b1b7f-71a5-4011-9441-d0b5e4122711\/setlists.json"}]}},"status":"ok"}}'
|
34
|
+
http_version: '1.1'
|
35
|
+
recorded_at: Fri, 05 Oct 2012 18:25:50 GMT
|
36
|
+
recorded_with: VCR 2.2.4
|
@@ -15,6 +15,14 @@ class TestRemote < Test::Unit::TestCase
|
|
15
15
|
@remote = Songkickr::Remote.new api_key
|
16
16
|
end
|
17
17
|
|
18
|
+
should "raise a ResourceNotFound exception when search a songkick artist id doesn't exist" do
|
19
|
+
VCR.use_cassette('invalid_artist_id') do
|
20
|
+
assert_raise ResourceNotFound do
|
21
|
+
@remote.artist(123123123123123123123123)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
18
26
|
should "raise a ResourceNotFound exception when search a songkick event id doesn't exist" do
|
19
27
|
VCR.use_cassette('invalid_event_id') do
|
20
28
|
assert_raise ResourceNotFound do
|
@@ -66,6 +74,13 @@ class TestRemote < Test::Unit::TestCase
|
|
66
74
|
@remote = Songkickr::Remote.new api_key
|
67
75
|
end
|
68
76
|
|
77
|
+
should "return the correct artist for an existing artist id " do
|
78
|
+
VCR.use_cassette('valid_artist') do
|
79
|
+
result = @remote.artist(253846)
|
80
|
+
assert_equal 253846, result.id
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
69
84
|
should "return the correct event for an existing event id " do
|
70
85
|
VCR.use_cassette('valid_event') do
|
71
86
|
result = @remote.event(17522)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: songkickr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: songkickr
|
@@ -747,6 +747,150 @@ dependencies:
|
|
747
747
|
- - ! '>='
|
748
748
|
- !ruby/object:Gem::Version
|
749
749
|
version: 1.2.2
|
750
|
+
- !ruby/object:Gem::Dependency
|
751
|
+
name: crack
|
752
|
+
requirement: !ruby/object:Gem::Requirement
|
753
|
+
none: false
|
754
|
+
requirements:
|
755
|
+
- - ! '>='
|
756
|
+
- !ruby/object:Gem::Version
|
757
|
+
version: '0'
|
758
|
+
type: :development
|
759
|
+
prerelease: false
|
760
|
+
version_requirements: !ruby/object:Gem::Requirement
|
761
|
+
none: false
|
762
|
+
requirements:
|
763
|
+
- - ! '>='
|
764
|
+
- !ruby/object:Gem::Version
|
765
|
+
version: '0'
|
766
|
+
- !ruby/object:Gem::Dependency
|
767
|
+
name: httparty
|
768
|
+
requirement: !ruby/object:Gem::Requirement
|
769
|
+
none: false
|
770
|
+
requirements:
|
771
|
+
- - ! '>='
|
772
|
+
- !ruby/object:Gem::Version
|
773
|
+
version: '0'
|
774
|
+
type: :development
|
775
|
+
prerelease: false
|
776
|
+
version_requirements: !ruby/object:Gem::Requirement
|
777
|
+
none: false
|
778
|
+
requirements:
|
779
|
+
- - ! '>='
|
780
|
+
- !ruby/object:Gem::Version
|
781
|
+
version: '0'
|
782
|
+
- !ruby/object:Gem::Dependency
|
783
|
+
name: test-unit
|
784
|
+
requirement: !ruby/object:Gem::Requirement
|
785
|
+
none: false
|
786
|
+
requirements:
|
787
|
+
- - ! '>='
|
788
|
+
- !ruby/object:Gem::Version
|
789
|
+
version: '0'
|
790
|
+
type: :development
|
791
|
+
prerelease: false
|
792
|
+
version_requirements: !ruby/object:Gem::Requirement
|
793
|
+
none: false
|
794
|
+
requirements:
|
795
|
+
- - ! '>='
|
796
|
+
- !ruby/object:Gem::Version
|
797
|
+
version: '0'
|
798
|
+
- !ruby/object:Gem::Dependency
|
799
|
+
name: rake
|
800
|
+
requirement: !ruby/object:Gem::Requirement
|
801
|
+
none: false
|
802
|
+
requirements:
|
803
|
+
- - ! '>='
|
804
|
+
- !ruby/object:Gem::Version
|
805
|
+
version: '0'
|
806
|
+
type: :development
|
807
|
+
prerelease: false
|
808
|
+
version_requirements: !ruby/object:Gem::Requirement
|
809
|
+
none: false
|
810
|
+
requirements:
|
811
|
+
- - ! '>='
|
812
|
+
- !ruby/object:Gem::Version
|
813
|
+
version: '0'
|
814
|
+
- !ruby/object:Gem::Dependency
|
815
|
+
name: jeweler
|
816
|
+
requirement: !ruby/object:Gem::Requirement
|
817
|
+
none: false
|
818
|
+
requirements:
|
819
|
+
- - ! '>='
|
820
|
+
- !ruby/object:Gem::Version
|
821
|
+
version: '0'
|
822
|
+
type: :development
|
823
|
+
prerelease: false
|
824
|
+
version_requirements: !ruby/object:Gem::Requirement
|
825
|
+
none: false
|
826
|
+
requirements:
|
827
|
+
- - ! '>='
|
828
|
+
- !ruby/object:Gem::Version
|
829
|
+
version: '0'
|
830
|
+
- !ruby/object:Gem::Dependency
|
831
|
+
name: vcr
|
832
|
+
requirement: !ruby/object:Gem::Requirement
|
833
|
+
none: false
|
834
|
+
requirements:
|
835
|
+
- - ! '>='
|
836
|
+
- !ruby/object:Gem::Version
|
837
|
+
version: '0'
|
838
|
+
type: :development
|
839
|
+
prerelease: false
|
840
|
+
version_requirements: !ruby/object:Gem::Requirement
|
841
|
+
none: false
|
842
|
+
requirements:
|
843
|
+
- - ! '>='
|
844
|
+
- !ruby/object:Gem::Version
|
845
|
+
version: '0'
|
846
|
+
- !ruby/object:Gem::Dependency
|
847
|
+
name: shoulda
|
848
|
+
requirement: !ruby/object:Gem::Requirement
|
849
|
+
none: false
|
850
|
+
requirements:
|
851
|
+
- - ! '>='
|
852
|
+
- !ruby/object:Gem::Version
|
853
|
+
version: 2.11.0
|
854
|
+
type: :development
|
855
|
+
prerelease: false
|
856
|
+
version_requirements: !ruby/object:Gem::Requirement
|
857
|
+
none: false
|
858
|
+
requirements:
|
859
|
+
- - ! '>='
|
860
|
+
- !ruby/object:Gem::Version
|
861
|
+
version: 2.11.0
|
862
|
+
- !ruby/object:Gem::Dependency
|
863
|
+
name: fakeweb
|
864
|
+
requirement: !ruby/object:Gem::Requirement
|
865
|
+
none: false
|
866
|
+
requirements:
|
867
|
+
- - ! '>='
|
868
|
+
- !ruby/object:Gem::Version
|
869
|
+
version: 1.3.0
|
870
|
+
type: :development
|
871
|
+
prerelease: false
|
872
|
+
version_requirements: !ruby/object:Gem::Requirement
|
873
|
+
none: false
|
874
|
+
requirements:
|
875
|
+
- - ! '>='
|
876
|
+
- !ruby/object:Gem::Version
|
877
|
+
version: 1.3.0
|
878
|
+
- !ruby/object:Gem::Dependency
|
879
|
+
name: redgreen
|
880
|
+
requirement: !ruby/object:Gem::Requirement
|
881
|
+
none: false
|
882
|
+
requirements:
|
883
|
+
- - ! '>='
|
884
|
+
- !ruby/object:Gem::Version
|
885
|
+
version: 1.2.2
|
886
|
+
type: :development
|
887
|
+
prerelease: false
|
888
|
+
version_requirements: !ruby/object:Gem::Requirement
|
889
|
+
none: false
|
890
|
+
requirements:
|
891
|
+
- - ! '>='
|
892
|
+
- !ruby/object:Gem::Version
|
893
|
+
version: 1.2.2
|
750
894
|
description: ! 'A Ruby wrapper around the Songkick API. Visit www.songkick.com/developer
|
751
895
|
for documentation on the Songkick API. '
|
752
896
|
email: jrmehle@gmail.com
|
@@ -878,9 +1022,11 @@ files:
|
|
878
1022
|
- test/fixtures/no_events.json
|
879
1023
|
- test/fixtures/resource_not_found.json
|
880
1024
|
- test/fixtures/vcr/invalid_api_key.yml
|
1025
|
+
- test/fixtures/vcr/invalid_artist_id.yml
|
881
1026
|
- test/fixtures/vcr/invalid_event_id.yml
|
882
1027
|
- test/fixtures/vcr/invalid_user.yml
|
883
1028
|
- test/fixtures/vcr/invalid_venue_id.yml
|
1029
|
+
- test/fixtures/vcr/valid_artist.yml
|
884
1030
|
- test/fixtures/vcr/valid_event.yml
|
885
1031
|
- test/fixtures/vcr/valid_user.yml
|
886
1032
|
- test/fixtures/vcr/valid_venue.yml
|
@@ -907,7 +1053,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
907
1053
|
version: '0'
|
908
1054
|
segments:
|
909
1055
|
- 0
|
910
|
-
hash: -
|
1056
|
+
hash: -220664448287447055
|
911
1057
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
912
1058
|
none: false
|
913
1059
|
requirements:
|