songkick_ruby 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,16 +2,46 @@ module Songkick
2
2
  class Client
3
3
  module Calendar
4
4
 
5
+ # Find upcoming events for an artist
6
+ #
7
+ # Example:
8
+ # sg = Songkick.new("myapikey")
9
+ # events = sg.artist_calendar(123)
10
+ # or events = sg.artist_calendar(123, 2)
11
+ #
12
+ # The first argument is the artist_id
13
+ # and the second argument is the page number,
14
+ # by default it is set to 1
5
15
  def artist_calendar(artist_id, page = 1)
6
16
  get "artists/#{artist_id}/calendar.#{format}", page
7
17
  end
8
18
 
19
+ # Find upcoming events for a location
20
+ #
21
+ # Example:
22
+ # sg = Songkick.new("myapikey")
23
+ # events = sg.location_calendar(123)
24
+ # or events = sg.location_calendar(123, 2)
25
+ #
26
+ # The first argument is the artist_id
27
+ # and the second argument is the page number,
28
+ # by default it is set to 1
9
29
  def location_calendar(location_id, page = 1)
10
30
  get "metro_areas/#{location_id}/calendar.#{format}", page
11
31
  end
12
32
 
33
+ # Find upcoming events for a user
34
+ #
35
+ # Example:
36
+ # sg = Songkick.new("myapikey")
37
+ # events = sg.users(123)
38
+ # or events = sg.users(123, 2)
39
+ #
40
+ # The first argument is the artist_id
41
+ # and the second argument is the page number,
42
+ # by default it is set to 1
13
43
  def user_calendar(username, page = 1)
14
- get "users/#{artist_id}/calendar.#{format}", page
44
+ get "users/#{username}/calendar.#{format}", page
15
45
  end
16
46
 
17
47
  end
@@ -2,8 +2,14 @@ module Songkick
2
2
  class Client
3
3
  module Event
4
4
 
5
- def find_event(event_id, page = 1)
6
- get "events/#{event_id}.#{format}", page
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}"
7
13
  end
8
14
 
9
15
  end
@@ -4,18 +4,21 @@ module Songkick
4
4
 
5
5
  private
6
6
 
7
- def get(url, page)
7
+ # Perform a get request
8
+ # and returns the response body in the correct format
9
+ def get(url, page = 1)
8
10
  uri = generate_uri(url, page)
9
11
 
10
12
  response = Net::HTTP.get_response(uri)
11
13
  json? ? JSON.parse(response.body) : response.body
12
14
  end
13
15
 
16
+ # Generate uri with aditionnal options
17
+ # such as the page number and the api key
14
18
  def generate_uri(url, page)
15
19
  uri = API_URL + url
16
20
  uri += uri.include?("?") ? "&page=#{page}" : "?page=#{page}" if page.to_i > 1
17
21
  uri = URI.parse uri.include?("?") ? uri + "&apikey=#{api_key}" : uri + "?apikey=#{api_key}"
18
- print
19
22
  uri
20
23
  end
21
24
 
@@ -2,19 +2,55 @@ module Songkick
2
2
  class Client
3
3
  module Search
4
4
 
5
+ # Search for upcoming events
6
+ #
7
+ # Options:
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"} )})
5
25
  def search_events(opts, page = 1)
6
26
  _opts = opts.collect{|k, v| "#{k}=#{v.gsub(" ", "%20")}"}.join("&")
7
27
  get "events.#{format}?#{_opts}", page
8
28
  end
9
29
  alias_method :search_event, :search_events
10
30
 
11
-
31
+ # Search for locations
32
+ #
33
+ # Options:
34
+ # * query
35
+ # * location
36
+ #
37
+ # Look at this page for more information about the location option:
38
+ # http://www.songkick.com/developer/location-search
39
+ #
40
+ # Example:
41
+ # sg = Songkick.new("myapikey")
42
+ # locations = sg.search_locations({:query => "Paris"})
12
43
  def search_locations(opts, page = 1)
13
44
  _opts = opts.collect{|k, v| "#{k}=#{v.gsub(" ", "%20")}"}.join("&")
14
45
  get "search/locations.#{format}?#{_opts}", page
15
46
  end
16
47
  alias_method :search_location, :search_locations
17
48
 
49
+ # Search for artists
50
+ #
51
+ # Example:
52
+ # sg = Songkick.new("myapikey")
53
+ # artists = sg.search_artists("ladygaga")
18
54
  def search_artists(text, page = 1)
19
55
  get "search/artists.#{format}?query=#{text.gsub(" ","%20")}", page
20
56
  end
@@ -10,6 +10,8 @@ module Songkick
10
10
 
11
11
  attr_accessor :api_key, :format
12
12
 
13
+ # Look at the songkick.rb file for info
14
+ # Songkick::Client.new == Songkick.new
13
15
  def initialize(api_key, format = :json)
14
16
  @api_key = api_key
15
17
  @format = format
@@ -19,10 +21,12 @@ module Songkick
19
21
  @format = format.to_s
20
22
  end
21
23
 
24
+ # Clean way to know if the format is in json
22
25
  def json?
23
26
  format == 'json'
24
27
  end
25
-
28
+
29
+ # Clean way to know if the format is in xml
26
30
  def xml?
27
31
  format == 'xml'
28
32
  end
data/lib/songkick.rb CHANGED
@@ -7,7 +7,17 @@ require "songkick/client.rb"
7
7
 
8
8
  module Songkick
9
9
  class << self
10
-
10
+
11
+ # In order to use the API you must have an API key
12
+ # To request one, go to this url: http://developer.songkick.com/
13
+ #
14
+ # Example:
15
+ # sg = Songkick.new("myaipkey")
16
+ # You can pass a second argument (json or xml) which is the output form.
17
+ # json is the default output
18
+ #
19
+ # Songkick.new is a shortcut for songkick::Client.new
20
+ # You can use both, they are the same
11
21
  def new(api_key, format = :json)
12
22
  Songkick::Client.new(api_key, format)
13
23
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "songkick_ruby"
3
- s.version = "1.1.1"
3
+ s.version = "1.1.2"
4
4
  s.author = "Gregory Marcilhacy"
5
5
  s.email = "g.marcilhacy@gmail.com"
6
6
  s.homepage = "http://github.com/gregorym/songkick_ruby"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: songkick_ruby
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 1
10
- version: 1.1.1
9
+ - 2
10
+ version: 1.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Gregory Marcilhacy
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-08-12 00:00:00 +02:00
18
+ date: 2011-08-19 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency