musicbrainz-ruby 0.1.3 → 0.2.0

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.
Files changed (3) hide show
  1. data/README.markdown +8 -4
  2. data/lib/musicbrainz.rb +29 -3
  3. metadata +5 -5
data/README.markdown CHANGED
@@ -1,13 +1,15 @@
1
1
  MusicBrainz-ruby
2
2
  ================
3
3
 
4
- O hai, I HTTParty'd ur [web service][1].
4
+ O hai, I [HTTParty][1]'d with ur [web service][2].
5
5
 
6
6
  No offence, RBrainz gem.
7
7
 
8
- I have only done the artist call so far.
8
+ I have only done the artist call so far. Returns [Mashes][3] of the metadata tag.
9
9
 
10
- [1]: http://wiki.musicbrainz.org/XMLWebService
10
+ [1]: https://github.com/jnunemaker/httparty
11
+ [2]: http://wiki.musicbrainz.org/XMLWebService
12
+ [3]: https://github.com/intridea/hashie
11
13
 
12
14
  Install
13
15
  -------
@@ -18,9 +20,11 @@ Examples
18
20
  --------
19
21
 
20
22
  require 'musicbrainz-ruby'
21
- brainz = MusicBrainz.new
23
+ brainz = MusicBrainz::Client.new
22
24
 
25
+ # Find an artist by id, include artist relations
23
26
  brainz.artist('45d15468-2918-4da4-870b-d6b880504f77', :inc => 'artist-rels')
27
+ # Search for artists with the term 'Diplo'
24
28
  brainz.artist(nil, :query => 'Diplo')
25
29
 
26
30
  MIT License
data/lib/musicbrainz.rb CHANGED
@@ -1,5 +1,9 @@
1
1
  require 'rubygems'
2
+
3
+ gem 'httparty', '~> 0.6.1'
2
4
  require 'httparty'
5
+
6
+ gem 'hashie', '~> 0.4.0'
3
7
  require 'hashie'
4
8
 
5
9
  module MusicBrainz
@@ -12,12 +16,34 @@ module MusicBrainz
12
16
  def request(path, params)
13
17
  options = {:query => {:type => 'xml'}}
14
18
  options[:query].merge!(params)
15
-
16
- Mash.new(self.class.get(path, options)).metadata
19
+
20
+ response = self.class.get(path, options)
21
+
22
+ if response.response.is_a? Net::HTTPBadRequest
23
+ raise ArgumentError, response.parsed_response
24
+ end
25
+
26
+ Mash.new(response).metadata
17
27
  end
18
28
 
19
29
  def artist(musicbrainz_id = nil, params = {})
20
30
  request("/artist/#{musicbrainz_id}", params)
21
31
  end
32
+
33
+ def release_group(musicbrainz_id = nil, params = {})
34
+ request("/release-group/#{musicbrainz_id}", params)
35
+ end
36
+
37
+ def release(musicbrainz_id = nil, params = {})
38
+ request("/release/#{musicbrainz_id}", params)
39
+ end
40
+
41
+ def track(musicbrainz_id = nil, params = {})
42
+ request("/track/#{musicbrainz_id}", params)
43
+ end
44
+
45
+ def label(musicbrainz_id = nil, params = {})
46
+ request("/label/#{musicbrainz_id}", params)
47
+ end
22
48
  end
23
- end
49
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: musicbrainz-ruby
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
9
- - 3
10
- version: 0.1.3
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Robin Tweedie
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-16 00:00:00 +00:00
18
+ date: 2011-01-17 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency