musicbrainz 0.5.2 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,54 @@
1
+ # -*- encoding: utf-8 -*-
2
+ module MusicBrainz
3
+ module Tools
4
+ class Proxy
5
+ @@last_query_time = 0
6
+ @@query_interval = 1.5 # Min: 1.0 Safe: 1.5
7
+ @@tries_limit = 5
8
+
9
+ WEB_SERVICE_URL = 'http://musicbrainz.org/ws/2/'
10
+ USER_AGENT = "gem musicbrainz (https://github.com/magnolia-fan/musicbrainz) @ " + Socket.gethostname
11
+
12
+ def self.query_interval=(sec)
13
+ @@query_interval = sec.to_f
14
+ end
15
+
16
+ def self.tries_limit=(num)
17
+ @@tries_limit = num.to_i
18
+ end
19
+
20
+ def self.load(resourse, params = {})
21
+ url = WEB_SERVICE_URL + resourse.to_s.gsub('_', '-') + '/' + (params[:id].to_s || '')
22
+ params.delete(:id) unless params[:id].nil?
23
+ url << '?' + params.map{ |k, v|
24
+ k = k.to_s.gsub('_', '-')
25
+ v = (v.is_a?(Array) ? v.map{ |_| _.to_s.gsub('_', '-') }.join('+') : v.to_s)
26
+ k + '=' + v
27
+ }.join('&') unless params.empty?
28
+ MusicBrainz::Tools::Cache.cache_contents(url) {
29
+ self.get_contents url
30
+ }
31
+ end
32
+
33
+ def self.get_contents(url)
34
+ response = nil
35
+
36
+ @@tries_limit.times {
37
+ time_passed = Time.now.to_f - @@last_query_time
38
+ sleep(@@query_interval - time_passed) if time_passed < @@query_interval
39
+
40
+ begin
41
+ response = open(url, "User-Agent" => USER_AGENT)
42
+ @@last_query_time = Time.now.to_f
43
+ rescue => e
44
+ response = nil if e.io.status[0].to_i == 404
45
+ end
46
+
47
+ break unless response.nil?
48
+ }
49
+
50
+ response
51
+ end
52
+ end
53
+ end
54
+ end
data/lib/version.rb ADDED
@@ -0,0 +1,4 @@
1
+ # -*- encoding: utf-8 -*-
2
+ module MusicBrainz
3
+ VERSION = "0.6.0"
4
+ end
data/musicbrainz.gemspec CHANGED
@@ -1,86 +1,22 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
1
  # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/version', __FILE__)
5
3
 
6
- Gem::Specification.new do |s|
7
- s.name = %q{musicbrainz}
8
- s.version = "0.5.2"
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Gregory Eremin"]
6
+ gem.email = ["magnolia_fan@me.com"]
7
+ gem.summary = %q{MusicBrainz Web Service wrapper with ActiveRecord-style models}
8
+ gem.homepage = "http://github.com/magnolia-fan/musicbrainz"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Gregory Eremin"]
12
- s.date = %q{2011-11-15}
13
- s.description = %q{MusicBrainz Web Service wrapper with ActiveRecord-style models}
14
- s.email = %q{magnolia_fan@me.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE.txt",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".travis.yml",
22
- "Gemfile",
23
- "LICENSE.txt",
24
- "README.rdoc",
25
- "Rakefile",
26
- "VERSION",
27
- "lib/models/music_brainz.rb",
28
- "lib/models/music_brainz/artist.rb",
29
- "lib/models/music_brainz/base.rb",
30
- "lib/models/music_brainz/release.rb",
31
- "lib/models/music_brainz/release_group.rb",
32
- "lib/models/music_brainz/track.rb",
33
- "lib/musicbrainz.rb",
34
- "musicbrainz.gemspec",
35
- "spec/requests/artist_spec.rb",
36
- "spec/spec_helper.rb",
37
- "spec/support/vcr.rb",
38
- "test/helper.rb",
39
- "test/test_musicbrainz_artist.rb",
40
- "test/test_musicbrainz_release.rb",
41
- "test/test_musicbrainz_release_group.rb",
42
- "test/test_musicbrainz_track.rb"
43
- ]
44
- s.homepage = %q{http://github.com/magnolia-fan/musicbrainz}
45
- s.licenses = ["MIT"]
46
- s.require_paths = ["lib"]
47
- s.rubygems_version = %q{1.6.2}
48
- s.summary = %q{MusicBrainz Web Service wrapper}
10
+ gem.files = `git ls-files`.split($\)
11
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
12
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
13
+ gem.name = "musicbrainz"
14
+ gem.require_paths = ["lib"]
15
+ gem.version = MusicBrainz::VERSION
16
+ gem.license = "MIT"
49
17
 
50
- if s.respond_to? :specification_version then
51
- s.specification_version = 3
52
-
53
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
54
- s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
55
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
56
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
57
- s.add_development_dependency(%q<rcov>, [">= 0"])
58
- s.add_development_dependency(%q<rdoc>, [">= 0"])
59
- s.add_development_dependency(%q<shoulda>, [">= 0"])
60
- s.add_development_dependency(%q<rspec>, [">= 0"])
61
- s.add_development_dependency(%q<vcr>, [">= 0"])
62
- s.add_development_dependency(%q<webmock>, [">= 0"])
63
- else
64
- s.add_dependency(%q<nokogiri>, [">= 0"])
65
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
66
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
67
- s.add_dependency(%q<rcov>, [">= 0"])
68
- s.add_dependency(%q<rdoc>, [">= 0"])
69
- s.add_dependency(%q<shoulda>, [">= 0"])
70
- s.add_dependency(%q<rspec>, [">= 0"])
71
- s.add_dependency(%q<vcr>, [">= 0"])
72
- s.add_dependency(%q<webmock>, [">= 0"])
73
- end
74
- else
75
- s.add_dependency(%q<nokogiri>, [">= 0"])
76
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
77
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
78
- s.add_dependency(%q<rcov>, [">= 0"])
79
- s.add_dependency(%q<rdoc>, [">= 0"])
80
- s.add_dependency(%q<shoulda>, [">= 0"])
81
- s.add_dependency(%q<rspec>, [">= 0"])
82
- s.add_dependency(%q<vcr>, [">= 0"])
83
- s.add_dependency(%q<webmock>, [">= 0"])
84
- end
18
+ gem.add_dependency("nokogiri")
19
+ gem.add_development_dependency("rake")
20
+ gem.add_development_dependency("awesome_print")
21
+ gem.add_development_dependency("rspec")
85
22
  end
86
-
@@ -1,44 +1,49 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
- describe "artist" do
4
- it "return valid instance", :vcr do
5
- artist = MusicBrainz::Artist.find('69b39eab-6577-46a4-a9f5-817839092033')
6
- artist.should be_a_kind_of(MusicBrainz::Artist)
3
+ describe MusicBrainz::Artist do
4
+ it "gets no exception while loading artist info" do
5
+ lambda {
6
+ MusicBrainz::Artist.find('69b39eab-6577-46a4-a9f5-817839092033')
7
+ }.should_not raise_error(Exception)
7
8
  end
8
-
9
- it "search by name", :vcr do
9
+
10
+ it "gets correct instance" do
11
+ artist = MusicBrainz::Artist.find_by_name('Kasabian')
12
+ artist.should be_an_instance_of(MusicBrainz::Artist)
13
+ end
14
+
15
+ it "searches artist by name" do
10
16
  matches = MusicBrainz::Artist.search('Kasabian')
11
- matches.should have_at_least(1).item
12
- matches.first[:name].should eql('Kasabian')
17
+ matches.length.should be > 0
18
+ matches.first[:name].should == "Kasabian"
19
+ end
20
+
21
+ it "finds name first than alias" do
22
+ matches = MusicBrainz::Artist.search('Chris Martin')
23
+ matches.length.should be > 0
24
+ matches.first[:name].should == "Chris Martin"
25
+ end
26
+
27
+ it "gets correct result by name" do
28
+ artist = MusicBrainz::Artist.find_by_name('Kasabian')
29
+ artist.id.should == "69b39eab-6577-46a4-a9f5-817839092033"
30
+ end
31
+
32
+ it "gets correct artist data" do
33
+ artist = MusicBrainz::Artist.find_by_name('Kasabian')
34
+ artist.id.should == "69b39eab-6577-46a4-a9f5-817839092033"
35
+ artist.type.should == "Group"
36
+ artist.name.should == "Kasabian"
37
+ artist.country.should == "GB"
38
+ artist.date_begin.should == "1999"
39
+ end
40
+
41
+ it "gets correct artist's release groups" do
42
+ release_groups = MusicBrainz::Artist.find_by_name('Kasabian').release_groups
43
+ release_groups.length.should be >= 16
44
+ release_groups.first.id.should == "533cbc5f-ec7e-32ab-95f3-8d1f804a5176"
45
+ release_groups.first.type.should == "Single"
46
+ release_groups.first.title.should == "Club Foot"
47
+ release_groups.first.first_release_date.should == Time.utc(2004, 5, 10)
13
48
  end
14
- #
15
- # should "get correct result by name" do
16
- # @artist = MusicBrainz::Artist.find_by_name('Kasabian')
17
- # assert_equal("69b39eab-6577-46a4-a9f5-817839092033", @artist.id)
18
- # end
19
- #
20
- # setup do
21
- # @artist = MusicBrainz::Artist.find('69b39eab-6577-46a4-a9f5-817839092033')
22
- # end
23
- #
24
- # should "return valid instance" do
25
- # assert_instance_of(MusicBrainz::Artist, @artist)
26
- # end
27
- #
28
- # should "contain correct data" do
29
- # assert_equal("69b39eab-6577-46a4-a9f5-817839092033", @artist.id)
30
- # assert_equal("Group", @artist.type)
31
- # assert_equal("Kasabian", @artist.name)
32
- # assert_equal("GB", @artist.country)
33
- # assert_equal("1999", @artist.date_begin)
34
- # end
35
- #
36
- # should "load release groups" do
37
- # release_groups = @artist.release_groups
38
- # assert_operator(16, :<=, release_groups.length)
39
- # assert_equal('533cbc5f-ec7e-32ab-95f3-8d1f804a5176', release_groups.first.id)
40
- # assert_equal('Single', release_groups.first.type)
41
- # assert_equal('Club Foot', release_groups.first.title)
42
- # assert_equal(Time.utc(2004, 5, 10), release_groups.first.first_release_date)
43
- # end
44
49
  end
@@ -0,0 +1,32 @@
1
+ require "spec_helper"
2
+
3
+ describe MusicBrainz::ReleaseGroup do
4
+ it "gets no exception while loading release group info" do
5
+ lambda {
6
+ MusicBrainz::ReleaseGroup.find("6f33e0f0-cde2-38f9-9aee-2c60af8d1a61")
7
+ }.should_not raise_error(Exception)
8
+ end
9
+
10
+ it "gets correct instance" do
11
+ release_group = MusicBrainz::ReleaseGroup.find("6f33e0f0-cde2-38f9-9aee-2c60af8d1a61")
12
+ release_group.should be_an_instance_of(MusicBrainz::ReleaseGroup)
13
+ end
14
+
15
+ it "gets correct release group data" do
16
+ release_group = MusicBrainz::ReleaseGroup.find("6f33e0f0-cde2-38f9-9aee-2c60af8d1a61")
17
+ release_group.id.should == "6f33e0f0-cde2-38f9-9aee-2c60af8d1a61"
18
+ release_group.type.should == "Album"
19
+ release_group.title.should == "Empire"
20
+ release_group.first_release_date.should == Time.utc(2006, 8, 28)
21
+ end
22
+
23
+ it "gets correct release group's releases" do
24
+ releases = MusicBrainz::ReleaseGroup.find("6f33e0f0-cde2-38f9-9aee-2c60af8d1a61").releases
25
+ releases.length.should be >= 5
26
+ releases.first.id.should == "2225dd4c-ae9a-403b-8ea0-9e05014c778f"
27
+ releases.first.status.should == "Official"
28
+ releases.first.title.should == "Empire"
29
+ releases.first.date.should == Time.utc(2006, 8, 28)
30
+ releases.first.country.should == "GB"
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ require "spec_helper"
2
+
3
+ describe MusicBrainz::Release do
4
+ it "gets no exception while loading release info" do
5
+ lambda {
6
+ MusicBrainz::Release.find("2225dd4c-ae9a-403b-8ea0-9e05014c778f")
7
+ }.should_not raise_error(Exception)
8
+ end
9
+
10
+ it "gets correct instance" do
11
+ release = MusicBrainz::Release.find("2225dd4c-ae9a-403b-8ea0-9e05014c778f")
12
+ release.should be_an_instance_of(MusicBrainz::Release)
13
+ end
14
+
15
+ it "gets correct release data" do
16
+ release = MusicBrainz::Release.find("2225dd4c-ae9a-403b-8ea0-9e05014c778f")
17
+ release.id.should == "2225dd4c-ae9a-403b-8ea0-9e05014c778f"
18
+ release.title.should == "Empire"
19
+ release.status.should == "Official"
20
+ release.date.should == Time.utc(2006, 8, 28)
21
+ release.country.should == "GB"
22
+ end
23
+
24
+ it "gets correct release tracks" do
25
+ tracks = MusicBrainz::Release.find("2225dd4c-ae9a-403b-8ea0-9e05014c778f").tracks
26
+ tracks.length.should == 11
27
+ tracks.first.position.should == 1
28
+ tracks.first.recording_id.should == "b3015bab-1540-4d4e-9f30-14872a1525f7"
29
+ tracks.first.title.should == "Empire"
30
+ tracks.first.length.should == 233013
31
+ end
32
+ end
@@ -0,0 +1,21 @@
1
+ require "spec_helper"
2
+
3
+ describe MusicBrainz::Track do
4
+ it "gets no exception while loading release info" do
5
+ lambda {
6
+ MusicBrainz::Track.find("b3015bab-1540-4d4e-9f30-14872a1525f7")
7
+ }.should_not raise_error(Exception)
8
+ end
9
+
10
+ it "gets correct instance" do
11
+ track = MusicBrainz::Track.find("b3015bab-1540-4d4e-9f30-14872a1525f7")
12
+ track.should be_an_instance_of(MusicBrainz::Track)
13
+ end
14
+
15
+ it "gets correct track data" do
16
+ track = MusicBrainz::Track.find("b3015bab-1540-4d4e-9f30-14872a1525f7")
17
+ track.recording_id.should == "b3015bab-1540-4d4e-9f30-14872a1525f7"
18
+ track.title.should == "Empire"
19
+ track.length.should == 233013
20
+ end
21
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,19 +1,11 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require "vcr"
1
+ require "rubygems"
2
+ require "bundler/setup"
3
+ require "ap"
4
+
11
5
  require "musicbrainz"
12
6
 
13
- # HTTPI.log = false
14
- Dir[File.dirname(__FILE__)+"/../lib/*.rb"].each{ |f| require f }
15
- Dir[File.dirname(__FILE__)+"/../spec/support/*.rb"].each{ |f| require f }
7
+ MusicBrainz::Tools::Cache.cache_path = "tmp/cache"
16
8
 
17
9
  RSpec.configure do |config|
18
- config.mock_with :rspec
19
- end
10
+ # Configuration is not currently necessary
11
+ end
@@ -0,0 +1,71 @@
1
+ require "spec_helper"
2
+
3
+ describe MusicBrainz::Tools::Cache do
4
+ before(:all) do
5
+ @old_cache_path = MusicBrainz::Tools::Cache.cache_path
6
+ @tmp_cache_path = File.join(File.dirname(__FILE__), '../../tmp/cache/tools')
7
+ end
8
+
9
+ after(:all) do
10
+ MusicBrainz::Tools::Cache.cache_path = @old_cache_path
11
+ end
12
+
13
+ before(:each) do
14
+ @test_response = ::StringIO.new('<?xml version="1.0" encoding="UTF-8"?>'+
15
+ '<metadata xmlns="http://musicbrainz.org/ns/mmd-2.0#">'+
16
+ '<artist type="Group" id="69b39eab-6577-46a4-a9f5-817839092033">'+
17
+ '<name>Kasabian</name><sort-name>Kasabian</sort-name><country>GB</country>'+
18
+ '<life-span><begin>1999</begin></life-span><relation-list target-type="url">'+
19
+ '<relation type="allmusic"><target>http://allmusic.com/artist/p678134</target>'+
20
+ '</relation><relation type="wikipedia"><target>http://en.wikipedia.org/wiki/Kasabian</target>'+
21
+ '</relation><relation type="microblog"><target>http://twitter.com/kasabianhq</target>'+
22
+ '</relation><relation type="BBC Music page"><target>'+
23
+ 'http://www.bbc.co.uk/music/artists/69b39eab-6577-46a4-a9f5-817839092033</target></relation>'+
24
+ '<relation type="discogs"><target>http://www.discogs.com/artist/Kasabian</target></relation>'+
25
+ '<relation type="social network"><target>http://www.facebook.com/kasabian</target></relation>'+
26
+ '<relation type="IMDb"><target>http://www.imdb.com/name/nm1868442/</target></relation>'+
27
+ '<relation type="official homepage"><target>http://www.kasabian.co.uk/</target></relation>'+
28
+ '<relation type="myspace"><target>http://www.myspace.com/kasabian</target></relation>'+
29
+ '<relation type="youtube"><target>http://www.youtube.com/kasabianvevo</target></relation>'+
30
+ '<relation type="youtube"><target>http://www.youtube.com/user/KasabianTour</target></relation>'+
31
+ '</relation-list></artist></metadata>')
32
+ end
33
+
34
+ context "with cache enabled" do
35
+ it "calls get contents only once when requesting the resource twice" do
36
+ MusicBrainz::Tools::Cache.cache_path = @tmp_cache_path
37
+ MusicBrainz::Tools::Proxy.stub(:get_contents).and_return(@test_response)
38
+ MusicBrainz::Tools::Proxy.should_receive(:get_contents).once
39
+ mbid = "69b39eab-6577-46a4-a9f5-817839092033"
40
+
41
+ File.exist?("#{@tmp_cache_path}/artist/#{mbid}?inc=url-rels").should be_false
42
+ artist = MusicBrainz::Artist.find(mbid)
43
+ artist.should be_a_kind_of(MusicBrainz::Artist)
44
+
45
+ File.exist?("#{@tmp_cache_path}/artist/#{mbid}?inc=url-rels").should be_true
46
+ artist = MusicBrainz::Artist.find(mbid)
47
+ artist.should be_a_kind_of(MusicBrainz::Artist)
48
+
49
+ MusicBrainz::Tools::Cache.clear_cache
50
+ end
51
+ end
52
+
53
+ context "with cache disabled" do
54
+ it "calls get contents twice when requesting the resource twice" do
55
+ MusicBrainz::Tools::Cache.cache_path = nil
56
+ MusicBrainz::Tools::Proxy.stub(:get_contents).and_return(@test_response)
57
+ MusicBrainz::Tools::Proxy.should_receive(:get_contents).twice
58
+ mbid = "69b39eab-6577-46a4-a9f5-817839092033"
59
+
60
+ File.exist?("#{@tmp_cache_path}/artist/#{mbid}?inc=url-rels").should be_false
61
+ artist = MusicBrainz::Artist.find(mbid)
62
+ artist.should be_a_kind_of(MusicBrainz::Artist)
63
+
64
+ File.exist?("#{@tmp_cache_path}/artist/#{mbid}?inc=url-rels").should be_false
65
+ @test_response.rewind
66
+ MusicBrainz.stub(:get_contents).and_return(@test_response)
67
+ artist = MusicBrainz::Artist.find(mbid)
68
+ artist.should be_a_kind_of(MusicBrainz::Artist)
69
+ end
70
+ end
71
+ end
metadata CHANGED
@@ -1,180 +1,120 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: musicbrainz
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.0
4
5
  prerelease:
5
- version: 0.5.2
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Gregory Eremin
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-11-15 00:00:00 +04:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2012-07-04 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: nokogiri
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70115651814840 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
24
22
  type: :runtime
25
23
  prerelease: false
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70115651814840
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &70115651805120 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
32
- - - ~>
33
- - !ruby/object:Gem::Version
34
- version: 1.0.0
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
35
33
  type: :development
36
34
  prerelease: false
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: jeweler
40
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70115651805120
36
+ - !ruby/object:Gem::Dependency
37
+ name: awesome_print
38
+ requirement: &70115651804200 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: 1.6.4
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
46
44
  type: :development
47
45
  prerelease: false
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: rcov
51
- requirement: &id004 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: "0"
57
- type: :development
58
- prerelease: false
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: rdoc
62
- requirement: &id005 !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
68
- type: :development
69
- prerelease: false
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
72
- name: shoulda
73
- requirement: &id006 !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- version: "0"
79
- type: :development
80
- prerelease: false
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
46
+ version_requirements: *70115651804200
47
+ - !ruby/object:Gem::Dependency
83
48
  name: rspec
84
- requirement: &id007 !ruby/object:Gem::Requirement
49
+ requirement: &70115651803420 !ruby/object:Gem::Requirement
85
50
  none: false
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: "0"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
90
55
  type: :development
91
56
  prerelease: false
92
- version_requirements: *id007
93
- - !ruby/object:Gem::Dependency
94
- name: vcr
95
- requirement: &id008 !ruby/object:Gem::Requirement
96
- none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- version: "0"
101
- type: :development
102
- prerelease: false
103
- version_requirements: *id008
104
- - !ruby/object:Gem::Dependency
105
- name: webmock
106
- requirement: &id009 !ruby/object:Gem::Requirement
107
- none: false
108
- requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- version: "0"
112
- type: :development
113
- prerelease: false
114
- version_requirements: *id009
115
- description: MusicBrainz Web Service wrapper with ActiveRecord-style models
116
- email: magnolia_fan@me.com
57
+ version_requirements: *70115651803420
58
+ description:
59
+ email:
60
+ - magnolia_fan@me.com
117
61
  executables: []
118
-
119
62
  extensions: []
120
-
121
- extra_rdoc_files:
122
- - LICENSE.txt
123
- - README.rdoc
124
- files:
125
- - .document
63
+ extra_rdoc_files: []
64
+ files:
65
+ - .gitignore
66
+ - .rspec
126
67
  - .travis.yml
127
68
  - Gemfile
128
- - LICENSE.txt
129
- - README.rdoc
69
+ - LICENSE
70
+ - README.md
130
71
  - Rakefile
131
- - VERSION
132
- - lib/models/music_brainz.rb
133
- - lib/models/music_brainz/artist.rb
134
- - lib/models/music_brainz/base.rb
135
- - lib/models/music_brainz/release.rb
136
- - lib/models/music_brainz/release_group.rb
137
- - lib/models/music_brainz/track.rb
72
+ - lib/deprecated.rb
138
73
  - lib/musicbrainz.rb
74
+ - lib/musicbrainz/artist.rb
75
+ - lib/musicbrainz/base.rb
76
+ - lib/musicbrainz/release.rb
77
+ - lib/musicbrainz/release_group.rb
78
+ - lib/musicbrainz/track.rb
79
+ - lib/tools/cache.rb
80
+ - lib/tools/proxy.rb
81
+ - lib/version.rb
139
82
  - musicbrainz.gemspec
140
83
  - spec/requests/artist_spec.rb
84
+ - spec/requests/release_group_spec.rb
85
+ - spec/requests/release_spec.rb
86
+ - spec/requests/track_spec.rb
141
87
  - spec/spec_helper.rb
142
- - spec/support/vcr.rb
143
- - test/helper.rb
144
- - test/test_musicbrainz_artist.rb
145
- - test/test_musicbrainz_release.rb
146
- - test/test_musicbrainz_release_group.rb
147
- - test/test_musicbrainz_track.rb
148
- has_rdoc: true
88
+ - spec/tools/cache_spec.rb
149
89
  homepage: http://github.com/magnolia-fan/musicbrainz
150
- licenses:
90
+ licenses:
151
91
  - MIT
152
92
  post_install_message:
153
93
  rdoc_options: []
154
-
155
- require_paths:
94
+ require_paths:
156
95
  - lib
157
- required_ruby_version: !ruby/object:Gem::Requirement
96
+ required_ruby_version: !ruby/object:Gem::Requirement
158
97
  none: false
159
- requirements:
160
- - - ">="
161
- - !ruby/object:Gem::Version
162
- hash: 1409250906890612568
163
- segments:
164
- - 0
165
- version: "0"
166
- required_rubygems_version: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
167
103
  none: false
168
- requirements:
169
- - - ">="
170
- - !ruby/object:Gem::Version
171
- version: "0"
104
+ requirements:
105
+ - - ! '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
172
108
  requirements: []
173
-
174
109
  rubyforge_project:
175
- rubygems_version: 1.6.2
110
+ rubygems_version: 1.8.10
176
111
  signing_key:
177
112
  specification_version: 3
178
- summary: MusicBrainz Web Service wrapper
179
- test_files: []
180
-
113
+ summary: MusicBrainz Web Service wrapper with ActiveRecord-style models
114
+ test_files:
115
+ - spec/requests/artist_spec.rb
116
+ - spec/requests/release_group_spec.rb
117
+ - spec/requests/release_spec.rb
118
+ - spec/requests/track_spec.rb
119
+ - spec/spec_helper.rb
120
+ - spec/tools/cache_spec.rb