Skip to content

Latest commit

 

History

History
58 lines (39 loc) · 1.99 KB

File metadata and controls

58 lines (39 loc) · 1.99 KB

Rails plugin that provides simple access to the Discogs 2.0 API (see www.discogs.com/help/api)

This plugin simply retrieves JSON from the Discogs API. (Initially this wrapped the response in a Hashie::Mash to return pseudo-objects that have method-like accessors, but decided to just return the raw JSON. Feel free to use the awesome Hashie with the returned JSON!)

To install as a Rails 3 plugin:

script/rails plugin install git://github.com/roblambert/discogs_api.git

To install as a Rails 2 plugin:

script/plugin install git://github.com/roblambert/discogs_api.git

Dependencies are managed with Bundler, make sure it is installed:

gem install bundler

Then to install required gems:

bundle install
# Provide your own unique user-agent when creating a DiscogsApi instance,
# you would probably want to put this in a Rails initializer
DiscogsApi.user_agent = "YourUserAgent/VERSION +http://YourWebsite"

# Get an artist
artist_json = DiscogsApi.get_artist("Van Halen")
artist = Hashie::Mash.new artist_json

# inspect the artist
puts "Yay, retrieved #{artist.name}."
puts "Their primary website is #{artist.urls.first}."
puts "Their first release listed in the response is #{artist.releases.first.title}"
puts " which was released on #{artist.releases.first.label}"

sleep 1 # :) Discogs asks that you do not hit the service more than once a second from an IP address!

# Let's find more information about the first release listed in the artist object...
release_json = DiscogsApi.get_release(artist.releases.first.id)
release = Hashie::Mash.new release_json
puts "A little more info about this release: #{release.notes}"
puts "The track listing for #{release.title} by #{release.artists.first.name} is: "
release.tracklist.each do |track|
  puts " #{track.position}) #{track.title} [#{track.duration}]"
end

More example usage in spec/discogs_api_spec.rb

Copyright © 2011 Zabada, Inc., released under the MIT license