songkick_ruby 1.2.0 → 1.2.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/lib/songkick/client/calendar.rb +50 -52
- data/lib/songkick/client/errors.rb +7 -0
- data/lib/songkick/client/event.rb +10 -12
- data/lib/songkick/client/request.rb +18 -20
- data/lib/songkick/client/search.rb +63 -58
- data/lib/songkick/client/user.rb +38 -40
- data/lib/songkick/client/validations.rb +14 -0
- data/lib/songkick/client.rb +10 -12
- data/lib/songkick.rb +4 -2
- data/songkick_ruby.gemspec +7 -4
- data/spec/songkick_spec.rb +100 -0
- metadata +31 -54
- data/lib/songkick/version.rb +0 -3
@@ -1,61 +1,59 @@
|
|
1
1
|
module Songkick
|
2
|
-
class Client
|
3
2
|
module Calendar
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
4
|
+
# Find upcoming events for an artist
|
5
|
+
#
|
6
|
+
# Example:
|
7
|
+
# sg = Songkick.new("myapikey")
|
8
|
+
# events = sg.artist_calendar(123)
|
9
|
+
# or events = sg.artist_calendar(123, 2)
|
10
|
+
#
|
11
|
+
# The first argument is the artist_id
|
12
|
+
# and the second argument is the page number,
|
13
|
+
# by default it is set to 1
|
14
|
+
def artist_calendar(artist_id, page = 1)
|
15
|
+
get "artists/#{artist_id}/calendar.#{format}", page
|
16
|
+
end
|
18
17
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
18
|
+
# Find upcoming events for a location
|
19
|
+
#
|
20
|
+
# Example:
|
21
|
+
# sg = Songkick.new("myapikey")
|
22
|
+
# events = sg.location_calendar(123)
|
23
|
+
# or events = sg.location_calendar(123, 2)
|
24
|
+
#
|
25
|
+
# The first argument is the artist_id
|
26
|
+
# and the second argument is the page number,
|
27
|
+
# by default it is set to 1
|
28
|
+
def location_calendar(location_id, page = 1)
|
29
|
+
get "metro_areas/#{location_id}/calendar.#{format}", page
|
30
|
+
end
|
32
31
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
32
|
+
# Find upcoming events for a user
|
33
|
+
#
|
34
|
+
# Example:
|
35
|
+
# sg = Songkick.new("myapikey")
|
36
|
+
# events = sg.users(123)
|
37
|
+
# or events = sg.users(123, 2)
|
38
|
+
#
|
39
|
+
# The first argument is the artist_id
|
40
|
+
# and the second argument is the page number,
|
41
|
+
# by default it is set to 1
|
42
|
+
def user_calendar(username, page = 1)
|
43
|
+
get "users/#{username}/calendar.#{format}", page
|
44
|
+
end
|
46
45
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
end
|
46
|
+
# Find upcoming events for a venue
|
47
|
+
#
|
48
|
+
# Example:
|
49
|
+
# sg = Songkick.new("myapikey")
|
50
|
+
# or events = sg.usersvenue_calendar(123)
|
51
|
+
#
|
52
|
+
# The first argument is the venue_id
|
53
|
+
# and the second argument is the page number,
|
54
|
+
# by default it is set to 1
|
55
|
+
def venue_calendar(venue_id, page = 1)
|
56
|
+
get "users/#{venue_id}/venues.#{format}", page
|
59
57
|
end
|
60
58
|
end
|
61
59
|
end
|
@@ -1,17 +1,15 @@
|
|
1
1
|
module Songkick
|
2
|
-
|
3
|
-
module Event
|
4
|
-
|
5
|
-
# Find detailed information about an event
|
6
|
-
#
|
7
|
-
# Example:
|
8
|
-
# sg = Songkick.new("myapikey")
|
9
|
-
# event = sg.find_event(123)
|
10
|
-
# The first argument is the event id
|
11
|
-
def find_event(event_id)
|
12
|
-
get "events/#{event_id}.#{format}"
|
13
|
-
end
|
2
|
+
module Event
|
14
3
|
|
4
|
+
# Find detailed information about an event
|
5
|
+
#
|
6
|
+
# Example:
|
7
|
+
# sg = Songkick.new("myapikey")
|
8
|
+
# event = sg.find_event(123)
|
9
|
+
# The first argument is the event id
|
10
|
+
def find_event(event_id)
|
11
|
+
get "events/#{event_id}.#{format}"
|
15
12
|
end
|
13
|
+
|
16
14
|
end
|
17
15
|
end
|
@@ -1,27 +1,25 @@
|
|
1
1
|
module Songkick
|
2
|
-
|
3
|
-
module Request
|
2
|
+
module Request
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
private
|
5
|
+
|
6
|
+
# Perform a get request
|
7
|
+
# and returns the response body in the correct format
|
8
|
+
def get(url, page = 1)
|
9
|
+
uri = generate_uri(url, page)
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
# Generate uri with aditionnal options
|
17
|
-
# such as the page number and the api key
|
18
|
-
def generate_uri(url, page)
|
19
|
-
uri = API_URL + url
|
20
|
-
uri += uri.include?("?") ? "&page=#{page}" : "?page=#{page}" if page.to_i > 1
|
21
|
-
uri = URI.parse uri.include?("?") ? uri + "&apikey=#{api_key}" : uri + "?apikey=#{api_key}"
|
22
|
-
uri
|
23
|
-
end
|
11
|
+
response = Net::HTTP.get_response(uri)
|
12
|
+
json? ? JSON.parse(response.body) : response.body
|
13
|
+
end
|
24
14
|
|
15
|
+
# Generate uri with aditionnal options
|
16
|
+
# such as the page number and the api key
|
17
|
+
def generate_uri(url, page)
|
18
|
+
uri = API_URL + url
|
19
|
+
uri += uri.include?("?") ? "&page=#{page}" : "?page=#{page}" if page.to_i > 1
|
20
|
+
uri = URI.parse uri.include?("?") ? uri + "&apikey=#{api_key}" : uri + "?apikey=#{api_key}"
|
21
|
+
uri
|
25
22
|
end
|
23
|
+
|
26
24
|
end
|
27
25
|
end
|
@@ -1,66 +1,71 @@
|
|
1
|
-
|
2
|
-
class Client
|
3
|
-
module Search
|
1
|
+
require "songkick/client/validations"
|
4
2
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
# * artist_name
|
9
|
-
# * location
|
10
|
-
# * * sk
|
11
|
-
# * * geo
|
12
|
-
# * * ip
|
13
|
-
# * * clientip
|
14
|
-
# * min_date
|
15
|
-
# * max_date
|
16
|
-
#
|
17
|
-
# Look at this page for more information about the location option:
|
18
|
-
# http://www.songkick.com/developer/event-search
|
19
|
-
#
|
20
|
-
# Example:
|
21
|
-
# sg = Songkick.new("myapikey")
|
22
|
-
# events = sg.search_events({:artist_name => "lady gaga"})
|
23
|
-
# events = sg.search_events({:artist_name => "lady gaga"}, 2)
|
24
|
-
# events = sg.search_events({:artist_name => "lady gaga", :location => "clientip=10.10.10.10"} )})
|
25
|
-
def search_events(opts, page = 1)
|
26
|
-
_opts = opts.collect{|k, v| "#{k}=#{v.gsub(" ", "%20")}"}.join("&")
|
27
|
-
get "events.#{format}?#{_opts}", page
|
28
|
-
end
|
29
|
-
alias_method :search_event, :search_events
|
3
|
+
module Songkick
|
4
|
+
module Search
|
5
|
+
include Validations
|
30
6
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
7
|
+
# Search for upcoming events
|
8
|
+
#
|
9
|
+
# Options:
|
10
|
+
# * artist_name
|
11
|
+
# * location
|
12
|
+
# * * sk
|
13
|
+
# * * geo
|
14
|
+
# * * ip
|
15
|
+
# * * clientip
|
16
|
+
# * min_date
|
17
|
+
# * max_date
|
18
|
+
#
|
19
|
+
# Look at this page for more information about the location option:
|
20
|
+
# http://www.songkick.com/developer/event-search
|
21
|
+
#
|
22
|
+
# Example:
|
23
|
+
# sg = Songkick.new("myapikey")
|
24
|
+
# events = sg.search_events({:artist_name => "lady gaga"})
|
25
|
+
# events = sg.search_events({:artist_name => "lady gaga"}, 2)
|
26
|
+
# events = sg.search_events({:artist_name => "lady gaga", :location => "clientip=10.10.10.10"} )})
|
27
|
+
def search_events(opts, page = 1)
|
28
|
+
validate_options %w(artist_name location min_date max_date), opts
|
29
|
+
|
30
|
+
_opts = opts.collect{|k, v| "#{k}=#{v.gsub(" ", "%20")}"}.join("&")
|
31
|
+
get "events.#{format}?#{_opts}", page
|
32
|
+
end
|
33
|
+
alias_method :search_event, :search_events
|
48
34
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
35
|
+
# Search for locations
|
36
|
+
#
|
37
|
+
# Options:
|
38
|
+
# * query
|
39
|
+
# * location
|
40
|
+
#
|
41
|
+
# Look at this page for more information about the location option:
|
42
|
+
# http://www.songkick.com/developer/location-search
|
43
|
+
#
|
44
|
+
# Example:
|
45
|
+
# sg = Songkick.new("myapikey")
|
46
|
+
# locations = sg.search_locations({:query => "Paris"})
|
47
|
+
def search_locations(opts, page = 1)
|
48
|
+
validate_options %w(query location), opts
|
49
|
+
|
50
|
+
_opts = opts.collect{|k, v| "#{k}=#{v.gsub(" ", "%20")}"}.join("&")
|
51
|
+
get "search/locations.#{format}?#{_opts}", page
|
52
|
+
end
|
53
|
+
alias_method :search_location, :search_locations
|
58
54
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
55
|
+
# Search for artists
|
56
|
+
#
|
57
|
+
# Example:
|
58
|
+
# sg = Songkick.new("myapikey")
|
59
|
+
# artists = sg.search_artists("ladygaga")
|
60
|
+
def search_artists(text, page = 1)
|
61
|
+
get "search/artists.#{format}?query=#{text.gsub(" ","%20")}", page
|
62
|
+
end
|
63
|
+
alias_method :search_artist, :search_artists
|
63
64
|
|
65
|
+
# Search for venues
|
66
|
+
def search_venues(text, page = 1)
|
67
|
+
get "search/venues.#{format}?query=#{text.gsub(" ","%20")}", page
|
64
68
|
end
|
69
|
+
|
65
70
|
end
|
66
71
|
end
|
data/lib/songkick/client/user.rb
CHANGED
@@ -1,50 +1,48 @@
|
|
1
1
|
module Songkick
|
2
|
-
|
3
|
-
module User
|
2
|
+
module User
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
# Get tracked locations for a user
|
18
|
-
# Example:
|
19
|
-
# sg = Songkick.new("myapikey")
|
20
|
-
# locations = sg.tracked_locations("saleandro")
|
21
|
-
def tracked_locations(username, page = 1)
|
22
|
-
get "users/#{username}/metro_areas/tracked.#{format}", page
|
23
|
-
end
|
4
|
+
# Find past events that a user attended
|
5
|
+
# For upcoming events use user_calendar method
|
6
|
+
# Important:
|
7
|
+
# Only public profiles are considered
|
8
|
+
#
|
9
|
+
# Example:
|
10
|
+
# sg = Songkick.new("myapikey")
|
11
|
+
# gigs = song.gigography("saleandro")
|
12
|
+
def gigography(username, page = 1)
|
13
|
+
get "users/#{username}/gigography.#{format}", page
|
14
|
+
end
|
24
15
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
16
|
+
# Get tracked locations for a user
|
17
|
+
# Example:
|
18
|
+
# sg = Songkick.new("myapikey")
|
19
|
+
# locations = sg.tracked_locations("saleandro")
|
20
|
+
def tracked_locations(username, page = 1)
|
21
|
+
get "users/#{username}/metro_areas/tracked.#{format}", page
|
22
|
+
end
|
32
23
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
24
|
+
# Get tracked artists for a user
|
25
|
+
# Example:
|
26
|
+
# sg = Songkick.new("myapikey")
|
27
|
+
# artists = sg.tracked_artists("saleandro")
|
28
|
+
def tracked_artists(username, page = 1)
|
29
|
+
get "users/#{username}/artists/tracked.#{format}", page
|
30
|
+
end
|
37
31
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
32
|
+
# Track an artist
|
33
|
+
def track_artist(username, artist_id)
|
34
|
+
get "users/#{username}/trackings/artist:#{artist_id}.#{format}"
|
35
|
+
end
|
42
36
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
37
|
+
# Track a location
|
38
|
+
def track_location(usersame, location_id)
|
39
|
+
get "users/#{username}/trackings/metro_area:#{location_id}.#{format}"
|
40
|
+
end
|
47
41
|
|
42
|
+
# Attendance
|
43
|
+
def attendance(username, event_id)
|
44
|
+
get "users/#{username}/trackings/event:#{event_id}.#{format}"
|
48
45
|
end
|
46
|
+
|
49
47
|
end
|
50
48
|
end
|
data/lib/songkick/client.rb
CHANGED
@@ -1,14 +1,12 @@
|
|
1
|
-
require "songkick/client/calendar
|
2
|
-
require "songkick/client/event
|
3
|
-
require "songkick/client/request
|
4
|
-
require "songkick/client/search
|
5
|
-
require "songkick/client/user
|
1
|
+
require "songkick/client/calendar"
|
2
|
+
require "songkick/client/event"
|
3
|
+
require "songkick/client/request"
|
4
|
+
require "songkick/client/search"
|
5
|
+
require "songkick/client/user"
|
6
6
|
|
7
7
|
module Songkick
|
8
8
|
class Client
|
9
9
|
|
10
|
-
API_URL = 'http://api.songkick.com/api/3.0/'
|
11
|
-
|
12
10
|
attr_accessor :api_key, :format
|
13
11
|
|
14
12
|
# Look at the songkick.rb file for info
|
@@ -28,11 +26,11 @@ module Songkick
|
|
28
26
|
format == 'xml'
|
29
27
|
end
|
30
28
|
|
31
|
-
include Songkick::
|
32
|
-
include Songkick::
|
33
|
-
include Songkick::
|
34
|
-
include Songkick::
|
35
|
-
include Songkick::
|
29
|
+
include Songkick::Calendar
|
30
|
+
include Songkick::Event
|
31
|
+
include Songkick::Search
|
32
|
+
include Songkick::User
|
33
|
+
include Songkick::Request
|
36
34
|
|
37
35
|
end
|
38
36
|
end
|
data/lib/songkick.rb
CHANGED
@@ -2,10 +2,12 @@ require "net/http"
|
|
2
2
|
require "rubygems"
|
3
3
|
require 'json'
|
4
4
|
|
5
|
-
require "songkick/
|
6
|
-
require "songkick/client.rb"
|
5
|
+
require "songkick/client"
|
7
6
|
|
8
7
|
module Songkick
|
8
|
+
|
9
|
+
API_URL = 'http://api.songkick.com/api/3.0/'
|
10
|
+
|
9
11
|
class << self
|
10
12
|
|
11
13
|
# In order to use the API you must have an API key
|
data/songkick_ruby.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "songkick_ruby"
|
3
|
-
s.version = "1.2.
|
3
|
+
s.version = "1.2.1"
|
4
4
|
s.author = "Gregory Marcilhacy"
|
5
5
|
s.email = "g.marcilhacy@gmail.com"
|
6
6
|
s.homepage = "http://github.com/gregorym/songkick_ruby"
|
@@ -14,14 +14,17 @@ Gem::Specification.new do |s|
|
|
14
14
|
songkick_ruby.gemspec
|
15
15
|
lib/songkick.rb
|
16
16
|
lib/songkick
|
17
|
-
lib/songkick/version.rb
|
18
17
|
lib/songkick/client.rb
|
19
18
|
lib/songkick/client/calendar.rb
|
20
19
|
lib/songkick/client/event.rb
|
21
20
|
lib/songkick/client/search.rb
|
22
21
|
lib/songkick/client/user.rb
|
23
22
|
lib/songkick/client/request.rb
|
23
|
+
lib/songkick/client/validations.rb
|
24
|
+
lib/songkick/client/errors.rb
|
24
25
|
)
|
25
26
|
|
26
|
-
s.test_files = %w(
|
27
|
-
|
27
|
+
s.test_files = %w(
|
28
|
+
spec/songkick_spec.rb
|
29
|
+
)
|
30
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
require "./lib/songkick.rb"
|
2
|
+
|
3
|
+
API_KEY = "frs8I4dwEXMX5raJ"
|
4
|
+
|
5
|
+
describe Songkick do
|
6
|
+
describe "#initialization" do
|
7
|
+
|
8
|
+
it "should be a new intance of songkick" do
|
9
|
+
client1 = Songkick.new("abc")
|
10
|
+
client2 = Songkick::Client.new("abc")
|
11
|
+
|
12
|
+
client1.class.name.should == "Songkick::Client"
|
13
|
+
client2.class.name.should == "Songkick::Client"
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should be json format" do
|
17
|
+
client = Songkick.new("abc")
|
18
|
+
client.format.should == "json"
|
19
|
+
client.json?.should be_true
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should be xml format" do
|
23
|
+
client = Songkick.new("abc", :xml)
|
24
|
+
client.format.should == "xml"
|
25
|
+
client.xml?.should be_true
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "#Validations" do
|
31
|
+
it "should raise an exception on wrong options" do
|
32
|
+
client = Songkick.new API_KEY
|
33
|
+
lambda {
|
34
|
+
client.search_event({:location => "Paris", :artist => "Fail!" })
|
35
|
+
}.should raise_error(Songkick::Errors::InvalidOptions)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "#Songkick request" do
|
40
|
+
it "should fail with a wrong API key" do
|
41
|
+
key = "helloworld"
|
42
|
+
client = Songkick.new(key)
|
43
|
+
|
44
|
+
response = client.search_artists("Blink 182")
|
45
|
+
response["resultsPage"]["status"].should == "error"
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should success with a valid API key" do
|
49
|
+
client = Songkick.new(API_KEY)
|
50
|
+
|
51
|
+
response = client.search_artists("Blink 182")
|
52
|
+
response["resultsPage"]["status"].should == "ok"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "#Songkick event" do
|
57
|
+
before :each do
|
58
|
+
@client = Songkick.new API_KEY
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should find an event" do
|
62
|
+
event = @client.find_event(3037536)
|
63
|
+
event["resultsPage"]["status"].should == "ok"
|
64
|
+
event["resultsPage"]["results"]["event"].is_a?(Hash) == true
|
65
|
+
event["resultsPage"]["results"]["event"]["displayName"].include?("Vampire") == true
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe "#Songkick calendar" do
|
70
|
+
before :each do
|
71
|
+
@client = Songkick.new API_KEY
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should search events" do
|
75
|
+
events = @client.search_events({:artist_name => "Coldplay"})
|
76
|
+
events["resultsPage"]["totalEntries"].nil? == false
|
77
|
+
events["resultsPage"]["totalEntries"].is_a?(Integer) == true
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should search locations" do
|
81
|
+
events = @client.search_locations({:query => "Paris"})
|
82
|
+
events["resultsPage"]["totalEntries"].nil? == false
|
83
|
+
events["resultsPage"]["totalEntries"].is_a?(Integer) == true
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should search artists" do
|
87
|
+
events = @client.search_artists("Coldplay")
|
88
|
+
events["resultsPage"]["totalEntries"].nil? == false
|
89
|
+
events["resultsPage"]["totalEntries"].is_a?(Integer) == true
|
90
|
+
end
|
91
|
+
|
92
|
+
it "should search venues" do
|
93
|
+
events = @client.search_venues("Stade de france")
|
94
|
+
events["resultsPage"]["totalEntries"].nil? == false
|
95
|
+
events["resultsPage"]["totalEntries"].is_a?(Integer) == true
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
metadata
CHANGED
@@ -1,91 +1,68 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: songkick_ruby
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.2.1
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 2
|
9
|
-
- 0
|
10
|
-
version: 1.2.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Gregory Marcilhacy
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-12-16 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: json
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70320254905020 !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
|
-
segments:
|
31
|
-
- 1
|
32
|
-
- 5
|
33
|
-
- 0
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
34
21
|
version: 1.5.0
|
35
22
|
type: :runtime
|
36
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70320254905020
|
37
25
|
description:
|
38
26
|
email: g.marcilhacy@gmail.com
|
39
27
|
executables: []
|
40
|
-
|
41
28
|
extensions: []
|
42
|
-
|
43
29
|
extra_rdoc_files: []
|
44
|
-
|
45
|
-
files:
|
30
|
+
files:
|
46
31
|
- README.textile
|
47
32
|
- songkick_ruby.gemspec
|
48
33
|
- lib/songkick.rb
|
49
|
-
- lib/songkick/version.rb
|
50
34
|
- lib/songkick/client.rb
|
51
35
|
- lib/songkick/client/calendar.rb
|
52
36
|
- lib/songkick/client/event.rb
|
53
37
|
- lib/songkick/client/search.rb
|
54
38
|
- lib/songkick/client/user.rb
|
55
39
|
- lib/songkick/client/request.rb
|
56
|
-
|
40
|
+
- lib/songkick/client/validations.rb
|
41
|
+
- lib/songkick/client/errors.rb
|
42
|
+
- spec/songkick_spec.rb
|
57
43
|
homepage: http://github.com/gregorym/songkick_ruby
|
58
44
|
licenses: []
|
59
|
-
|
60
45
|
post_install_message:
|
61
46
|
rdoc_options: []
|
62
|
-
|
63
|
-
require_paths:
|
47
|
+
require_paths:
|
64
48
|
- lib
|
65
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
66
50
|
none: false
|
67
|
-
requirements:
|
68
|
-
- -
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
|
71
|
-
|
72
|
-
- 0
|
73
|
-
version: "0"
|
74
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
56
|
none: false
|
76
|
-
requirements:
|
77
|
-
- -
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
|
80
|
-
segments:
|
81
|
-
- 0
|
82
|
-
version: "0"
|
57
|
+
requirements:
|
58
|
+
- - ! '>='
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
83
61
|
requirements: []
|
84
|
-
|
85
62
|
rubyforge_project:
|
86
|
-
rubygems_version: 1.
|
63
|
+
rubygems_version: 1.8.10
|
87
64
|
signing_key:
|
88
65
|
specification_version: 3
|
89
66
|
summary: Ruby wrapper of the songkick api
|
90
|
-
test_files:
|
91
|
-
|
67
|
+
test_files:
|
68
|
+
- spec/songkick_spec.rb
|
data/lib/songkick/version.rb
DELETED