songkickr 0.1.0 → 0.1.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/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/songkickr/artist.rb +4 -1
- data/lib/songkickr/artist_result.rb +29 -0
- data/lib/songkickr/remote.rb +30 -2
- data/lib/songkickr.rb +1 -0
- data/songkickr.gemspec +36 -37
- data/test.rb +21 -0
- metadata +20 -12
- data/.gitignore +0 -21
data/Rakefile
CHANGED
|
@@ -10,7 +10,7 @@ begin
|
|
|
10
10
|
gem.email = "jrmehle@gmail.com"
|
|
11
11
|
gem.homepage = "http://github.com/jrmehle/songkickr"
|
|
12
12
|
gem.authors = ["Jared Mehle"]
|
|
13
|
-
gem.add_development_dependency "
|
|
13
|
+
gem.add_development_dependency "shoulda", ">= 2.11.0"
|
|
14
14
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
|
15
15
|
end
|
|
16
16
|
Jeweler::GemcutterTasks.new
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.1
|
data/lib/songkickr/artist.rb
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
module Songkickr
|
|
2
2
|
class Artist
|
|
3
|
-
attr_accessor :href, :display_name
|
|
3
|
+
attr_accessor :href, :display_name, :id, :uri, :onTourUntil
|
|
4
4
|
|
|
5
5
|
def initialize(artist_hash = {})
|
|
6
6
|
@href = artist_hash["href"]
|
|
7
7
|
@display_name = artist_hash["displayName"]
|
|
8
|
+
@id = artist_hash["id"]
|
|
9
|
+
@uri = artist_hash["uri"]
|
|
10
|
+
@onTourUntil = artist_hash["onTourUntil"]
|
|
8
11
|
end
|
|
9
12
|
end
|
|
10
13
|
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Songkickr
|
|
2
|
+
class ArtistResult
|
|
3
|
+
attr_accessor :page, :total_entries, :results
|
|
4
|
+
|
|
5
|
+
def initialize(result_hash = {})
|
|
6
|
+
results_page = result_hash["resultsPage"]
|
|
7
|
+
|
|
8
|
+
if results_page
|
|
9
|
+
@page = results_page["page"]
|
|
10
|
+
@total_entries = results_page["totalEntries"]
|
|
11
|
+
@results = parse_results results_page["results"]
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
protected
|
|
16
|
+
|
|
17
|
+
def parse_results(results = {})
|
|
18
|
+
artists = []
|
|
19
|
+
if results.include?("artist")
|
|
20
|
+
results["artist"].each do |artist|
|
|
21
|
+
artists << Songkickr::Artist.new(artist)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
artists
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
29
|
+
end
|
data/lib/songkickr/remote.rb
CHANGED
|
@@ -28,10 +28,31 @@ module Songkickr
|
|
|
28
28
|
# location - see the Songkick website for instructions on how to use the location parameter
|
|
29
29
|
|
|
30
30
|
def events(query = {})
|
|
31
|
-
|
|
31
|
+
path = extract_path_from_query(query)
|
|
32
|
+
result = self.class.get("#{path}/events.json", :query => query)
|
|
32
33
|
Songkickr::EventResult.new result
|
|
33
34
|
end
|
|
34
|
-
|
|
35
|
+
|
|
36
|
+
# Parameters - http://groups.google.com/group/songkick-api/browse_thread/thread/af15b9a6ad3c3513#
|
|
37
|
+
# artist_id - Songkick artist_id, use artist_search to get it
|
|
38
|
+
# min_date
|
|
39
|
+
# max_date
|
|
40
|
+
# per_page
|
|
41
|
+
# page
|
|
42
|
+
|
|
43
|
+
def gigography (artist_id, query= {})
|
|
44
|
+
result = self.class.get("/artists/#{artist_id}/gigography.json",:query=>query)
|
|
45
|
+
Songkickr::EventResult.new result
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Parameters - http://www.songkick.com/developer/artist-search
|
|
49
|
+
# full_text (full text of a search)
|
|
50
|
+
# returns artist
|
|
51
|
+
|
|
52
|
+
def artist_search(query={})
|
|
53
|
+
result = self.class.get("/search/artists.json?query=#{query[:artist_name]}", :query=>query)
|
|
54
|
+
Songkickr::ArtistResult.new result
|
|
55
|
+
end
|
|
35
56
|
|
|
36
57
|
# Parameters - http://www.songkick.com/developer/events-for-user
|
|
37
58
|
#
|
|
@@ -60,5 +81,12 @@ module Songkickr
|
|
|
60
81
|
result = self.class.get("/events/#{event_id}/setlists.json")
|
|
61
82
|
Songkickr::ConcertSetlistResult.new result
|
|
62
83
|
end
|
|
84
|
+
|
|
85
|
+
private
|
|
86
|
+
|
|
87
|
+
def extract_path_from_query(query = {})
|
|
88
|
+
mbid = query.delete :mbid
|
|
89
|
+
"/artists/mbid:#{mbid}" if mbid
|
|
90
|
+
end
|
|
63
91
|
end
|
|
64
92
|
end
|
data/lib/songkickr.rb
CHANGED
|
@@ -13,6 +13,7 @@ require dir + '/songkickr/setlist'
|
|
|
13
13
|
require dir + '/songkickr/event_result'
|
|
14
14
|
require dir + '/songkickr/concert_setlist_result'
|
|
15
15
|
require dir + '/songkickr/remote'
|
|
16
|
+
require dir + '/songkickr/artist_result'
|
|
16
17
|
|
|
17
18
|
class APIKeyNotSet < StandardError;
|
|
18
19
|
def to_s
|
data/songkickr.gemspec
CHANGED
|
@@ -1,70 +1,69 @@
|
|
|
1
1
|
# Generated by jeweler
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{songkickr}
|
|
8
|
-
s.version = "0.1.
|
|
8
|
+
s.version = "0.1.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 = %q{
|
|
12
|
+
s.date = %q{2011-05-03}
|
|
13
13
|
s.description = %q{A Ruby wrapper around the Songkick API. Visit www.songkick.com/developer for documentation on the Songkick API. }
|
|
14
14
|
s.email = %q{jrmehle@gmail.com}
|
|
15
15
|
s.extra_rdoc_files = [
|
|
16
16
|
"LICENSE",
|
|
17
|
-
|
|
17
|
+
"README.rdoc"
|
|
18
18
|
]
|
|
19
19
|
s.files = [
|
|
20
20
|
".document",
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
21
|
+
"LICENSE",
|
|
22
|
+
"README.rdoc",
|
|
23
|
+
"Rakefile",
|
|
24
|
+
"VERSION",
|
|
25
|
+
"lib/songkickr.rb",
|
|
26
|
+
"lib/songkickr/artist.rb",
|
|
27
|
+
"lib/songkickr/artist_result.rb",
|
|
28
|
+
"lib/songkickr/concert_setlist_result.rb",
|
|
29
|
+
"lib/songkickr/event.rb",
|
|
30
|
+
"lib/songkickr/event_result.rb",
|
|
31
|
+
"lib/songkickr/location.rb",
|
|
32
|
+
"lib/songkickr/performance.rb",
|
|
33
|
+
"lib/songkickr/remote.rb",
|
|
34
|
+
"lib/songkickr/setlist.rb",
|
|
35
|
+
"lib/songkickr/setlist_item.rb",
|
|
36
|
+
"lib/songkickr/venue.rb",
|
|
37
|
+
"songkickr.gemspec",
|
|
38
|
+
"test.rb",
|
|
39
|
+
"test/fixtures/events.json",
|
|
40
|
+
"test/fixtures/no_events.json",
|
|
41
|
+
"test/helper.rb",
|
|
42
|
+
"test/songkickr/test_artist.rb",
|
|
43
|
+
"test/songkickr/test_remote.rb",
|
|
44
|
+
"test/test_songkickr.rb"
|
|
44
45
|
]
|
|
45
46
|
s.homepage = %q{http://github.com/jrmehle/songkickr}
|
|
46
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
|
47
47
|
s.require_paths = ["lib"]
|
|
48
|
-
s.rubygems_version = %q{1.
|
|
48
|
+
s.rubygems_version = %q{1.7.2}
|
|
49
49
|
s.summary = %q{A Ruby wrapper around the Songkick API.}
|
|
50
50
|
s.test_files = [
|
|
51
51
|
"test/helper.rb",
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
"test/songkickr/test_artist.rb",
|
|
53
|
+
"test/songkickr/test_remote.rb",
|
|
54
|
+
"test/test_songkickr.rb"
|
|
55
55
|
]
|
|
56
56
|
|
|
57
57
|
if s.respond_to? :specification_version then
|
|
58
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
59
58
|
s.specification_version = 3
|
|
60
59
|
|
|
61
|
-
if Gem::Version.new(Gem::
|
|
62
|
-
s.add_development_dependency(%q<
|
|
60
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
61
|
+
s.add_development_dependency(%q<shoulda>, [">= 2.11.0"])
|
|
63
62
|
else
|
|
64
|
-
s.add_dependency(%q<
|
|
63
|
+
s.add_dependency(%q<shoulda>, [">= 2.11.0"])
|
|
65
64
|
end
|
|
66
65
|
else
|
|
67
|
-
s.add_dependency(%q<
|
|
66
|
+
s.add_dependency(%q<shoulda>, [">= 2.11.0"])
|
|
68
67
|
end
|
|
69
68
|
end
|
|
70
69
|
|
data/test.rb
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# This is a simple comand line test to make sure everything is working
|
|
3
|
+
|
|
4
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
|
5
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
6
|
+
require 'songkickr'
|
|
7
|
+
require 'httparty'
|
|
8
|
+
|
|
9
|
+
remote = Songkickr::Remote.new 'hFYxiInE4DBpH5KL'
|
|
10
|
+
@results = remote.artist_search(:artist_name => "Muse", :per_page=>'10' ).results
|
|
11
|
+
@results.each do |result|
|
|
12
|
+
print result.display_name + "\n"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
print "\n"
|
|
16
|
+
|
|
17
|
+
@gigography_results = remote.gigography(@results[0].id, :per_page=>'50', :page=>'1', :min_date=>'2010-01-01').results
|
|
18
|
+
|
|
19
|
+
@gigography_results.each do |gig|
|
|
20
|
+
print gig.display_name + "\n"
|
|
21
|
+
end
|
metadata
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: songkickr
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
4
|
+
hash: 25
|
|
5
|
+
prerelease:
|
|
5
6
|
segments:
|
|
6
7
|
- 0
|
|
7
8
|
- 1
|
|
8
|
-
-
|
|
9
|
-
version: 0.1.
|
|
9
|
+
- 1
|
|
10
|
+
version: 0.1.1
|
|
10
11
|
platform: ruby
|
|
11
12
|
authors:
|
|
12
13
|
- Jared Mehle
|
|
@@ -14,19 +15,22 @@ autorequire:
|
|
|
14
15
|
bindir: bin
|
|
15
16
|
cert_chain: []
|
|
16
17
|
|
|
17
|
-
date:
|
|
18
|
-
default_executable:
|
|
18
|
+
date: 2011-05-03 00:00:00 Z
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
21
|
-
name:
|
|
21
|
+
name: shoulda
|
|
22
22
|
prerelease: false
|
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
|
24
|
+
none: false
|
|
24
25
|
requirements:
|
|
25
26
|
- - ">="
|
|
26
27
|
- !ruby/object:Gem::Version
|
|
28
|
+
hash: 35
|
|
27
29
|
segments:
|
|
30
|
+
- 2
|
|
31
|
+
- 11
|
|
28
32
|
- 0
|
|
29
|
-
version:
|
|
33
|
+
version: 2.11.0
|
|
30
34
|
type: :development
|
|
31
35
|
version_requirements: *id001
|
|
32
36
|
description: "A Ruby wrapper around the Songkick API. Visit www.songkick.com/developer for documentation on the Songkick API. "
|
|
@@ -40,13 +44,13 @@ extra_rdoc_files:
|
|
|
40
44
|
- README.rdoc
|
|
41
45
|
files:
|
|
42
46
|
- .document
|
|
43
|
-
- .gitignore
|
|
44
47
|
- LICENSE
|
|
45
48
|
- README.rdoc
|
|
46
49
|
- Rakefile
|
|
47
50
|
- VERSION
|
|
48
51
|
- lib/songkickr.rb
|
|
49
52
|
- lib/songkickr/artist.rb
|
|
53
|
+
- lib/songkickr/artist_result.rb
|
|
50
54
|
- lib/songkickr/concert_setlist_result.rb
|
|
51
55
|
- lib/songkickr/event.rb
|
|
52
56
|
- lib/songkickr/event_result.rb
|
|
@@ -57,39 +61,43 @@ files:
|
|
|
57
61
|
- lib/songkickr/setlist_item.rb
|
|
58
62
|
- lib/songkickr/venue.rb
|
|
59
63
|
- songkickr.gemspec
|
|
64
|
+
- test.rb
|
|
60
65
|
- test/fixtures/events.json
|
|
61
66
|
- test/fixtures/no_events.json
|
|
62
67
|
- test/helper.rb
|
|
63
68
|
- test/songkickr/test_artist.rb
|
|
64
69
|
- test/songkickr/test_remote.rb
|
|
65
70
|
- test/test_songkickr.rb
|
|
66
|
-
has_rdoc: true
|
|
67
71
|
homepage: http://github.com/jrmehle/songkickr
|
|
68
72
|
licenses: []
|
|
69
73
|
|
|
70
74
|
post_install_message:
|
|
71
|
-
rdoc_options:
|
|
72
|
-
|
|
75
|
+
rdoc_options: []
|
|
76
|
+
|
|
73
77
|
require_paths:
|
|
74
78
|
- lib
|
|
75
79
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
80
|
+
none: false
|
|
76
81
|
requirements:
|
|
77
82
|
- - ">="
|
|
78
83
|
- !ruby/object:Gem::Version
|
|
84
|
+
hash: 3
|
|
79
85
|
segments:
|
|
80
86
|
- 0
|
|
81
87
|
version: "0"
|
|
82
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
|
+
none: false
|
|
83
90
|
requirements:
|
|
84
91
|
- - ">="
|
|
85
92
|
- !ruby/object:Gem::Version
|
|
93
|
+
hash: 3
|
|
86
94
|
segments:
|
|
87
95
|
- 0
|
|
88
96
|
version: "0"
|
|
89
97
|
requirements: []
|
|
90
98
|
|
|
91
99
|
rubyforge_project:
|
|
92
|
-
rubygems_version: 1.
|
|
100
|
+
rubygems_version: 1.7.2
|
|
93
101
|
signing_key:
|
|
94
102
|
specification_version: 3
|
|
95
103
|
summary: A Ruby wrapper around the Songkick API.
|