discogs-wrapper 1.1.0 → 1.1.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/discogs.gemspec
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = "discogs-wrapper"
|
4
|
-
s.version = "1.1.
|
5
|
-
s.date = "2011-10-
|
4
|
+
s.version = "1.1.1"
|
5
|
+
s.date = "2011-10-23"
|
6
6
|
s.summary = "Discogs::Wrapper is a full wrapper for the http://www.discogs.com API V2"
|
7
7
|
s.homepage = "http://www.github.com/buntine/discogs"
|
8
8
|
s.email = "info@andrewbuntine.com"
|
@@ -10,9 +10,9 @@ Gem::Specification.new do |s|
|
|
10
10
|
|
11
11
|
s.description = "Discogs::Wrapper is a full wrapper for the http://www.discogs.com API V2"
|
12
12
|
|
13
|
-
s.files = ["lib/wrapper", "lib/wrapper/resource_mappings.rb", "lib/wrapper/wrapper.rb", "lib/wrapper/resource.rb", "lib/wrapper/resources", "lib/wrapper/resources/format.rb", "lib/wrapper/resources/search.rb", "lib/wrapper/resources/label_release.rb", "lib/wrapper/resources/artist.rb", "lib/wrapper/resources/release_artist.rb", "lib/wrapper/resources/artist_release.rb", "lib/wrapper/resources/release_label.rb", "lib/wrapper/resources/generic_list.rb", "lib/wrapper/resources/search_result.rb", "lib/wrapper/resources/label.rb", "lib/wrapper/resources/image.rb", "lib/wrapper/resources/track.rb", "lib/wrapper/resources/release.rb", "lib/discogs.rb", "Rakefile", "README.markdown", "discogs.gemspec"]
|
13
|
+
s.files = ["lib/wrapper", "lib/wrapper/resource_mappings.rb", "lib/wrapper/wrapper.rb", "lib/wrapper/resource.rb", "lib/wrapper/resources", "lib/wrapper/resources/format.rb", "lib/wrapper/resources/search.rb", "lib/wrapper/resources/label_release.rb", "lib/wrapper/resources/artist.rb", "lib/wrapper/resources/release_artist.rb", "lib/wrapper/resources/artist_release.rb", "lib/wrapper/resources/release_label.rb", "lib/wrapper/resources/generic_list.rb", "lib/wrapper/resources/search_result.rb", "lib/wrapper/resources/label.rb", "lib/wrapper/resources/image.rb", "lib/wrapper/resources/track.rb", "lib/wrapper/resources/release.rb", "lib/wrapper/resources/master_release.rb", "lib/wrapper/resources/video.rb", "lib/discogs.rb", "Rakefile", "README.markdown", "discogs.gemspec"]
|
14
14
|
|
15
|
-
s.test_files = ["spec/wrapper_methods/get_release_spec.rb", "spec/wrapper_methods/search_spec.rb", "spec/wrapper_methods/get_artist_spec.rb", "spec/wrapper_methods/get_label_spec.rb", "spec/resource_spec.rb", "spec/resources/label_spec.rb", "spec/resources/generic_list_spec.rb", "spec/resources/artist_release_spec.rb", "spec/resources/artist_spec.rb", "spec/resources/release_artist_spec.rb", "spec/resources/search_spec.rb", "spec/resources/label_release_spec.rb", "spec/resources/release_label_spec.rb", "spec/resources/release_spec.rb", "spec/resources/search_result_spec.rb", "spec/resources/image_spec.rb", "spec/resources/track_spec.rb", "spec/resources/format_spec.rb", "spec/wrapper_spec.rb", "spec/spec_helper.rb"]
|
15
|
+
s.test_files = ["spec/wrapper_methods/get_release_spec.rb", "spec/wrapper_methods/get_master_release_spec.rb", "spec/wrapper_methods/search_spec.rb", "spec/wrapper_methods/get_artist_spec.rb", "spec/wrapper_methods/get_label_spec.rb", "spec/resource_spec.rb", "spec/resources/label_spec.rb", "spec/resources/generic_list_spec.rb", "spec/resources/artist_release_spec.rb", "spec/resources/artist_spec.rb", "spec/resources/release_artist_spec.rb", "spec/resources/search_spec.rb", "spec/resources/label_release_spec.rb", "spec/resources/release_label_spec.rb", "spec/resources/release_spec.rb", "spec/resources/master_release_spec.rb", "spec/resources/video_spec.rb", "spec/resources/search_result_spec.rb", "spec/resources/image_spec.rb", "spec/resources/track_spec.rb", "spec/resources/format_spec.rb", "spec/wrapper_spec.rb", "spec/spec_helper.rb"]
|
16
16
|
|
17
17
|
s.platform = Gem::Platform::RUBY
|
18
18
|
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# Represents a master release in the Discogs API.
|
2
|
+
|
3
|
+
class Discogs::MasterRelease < Discogs::Resource
|
4
|
+
|
5
|
+
no_mapping
|
6
|
+
|
7
|
+
attr_accessor :id,
|
8
|
+
:styles,
|
9
|
+
:genres,
|
10
|
+
:main_release,
|
11
|
+
:notes,
|
12
|
+
:year,
|
13
|
+
:images,
|
14
|
+
:videos,
|
15
|
+
:tracklist,
|
16
|
+
:artists
|
17
|
+
#:versions,
|
18
|
+
#:videos
|
19
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../spec_helper"
|
2
|
+
|
3
|
+
describe Discogs::MasterRelease do
|
4
|
+
|
5
|
+
it "should map to empty array" do
|
6
|
+
Discogs::Release.element_names.should == []
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should map plural to empty array" do
|
10
|
+
Discogs::Release.plural_element_names.should == []
|
11
|
+
end
|
12
|
+
|
13
|
+
## See ./spec/wrapper_methods/get_master_release_spec.rb for extensive tests of this class.
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../spec_helper"
|
2
|
+
|
3
|
+
describe Discogs::Video do
|
4
|
+
|
5
|
+
it "should map to video" do
|
6
|
+
Discogs::Video.element_names.should == [ :video ]
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should map to plural videos" do
|
10
|
+
Discogs::Video.plural_element_names.should == [ :videos ]
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "when asking for video information" do
|
14
|
+
|
15
|
+
before do
|
16
|
+
data = File.read(File.join(File.dirname(__FILE__), "..", "samples", "valid_video.xml"))
|
17
|
+
@video = Discogs::Video.new(data)
|
18
|
+
@video.build!
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should have a duration attribute" do
|
22
|
+
@video.duration.should == "334"
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should have a embed attribute" do
|
26
|
+
@video.embed.should == "true"
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should have a description attribute" do
|
30
|
+
@video.description.should == "The Persuader-Stockholm-Sodermalm"
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should have a uri attribute" do
|
34
|
+
@video.uri.should == "http://www.youtube.com/watch?v=QVdDhOnoR8k"
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should have a title attribute" do
|
38
|
+
@video.title.should == "The Persuader"
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../spec_helper"
|
2
|
+
|
3
|
+
describe Discogs::Wrapper do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@wrapper = Discogs::Wrapper.new("some_user_agent")
|
7
|
+
@master_release_id = "666666"
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "when asking for master_release information" do
|
11
|
+
|
12
|
+
before do
|
13
|
+
@http_request = mock(Net::HTTP)
|
14
|
+
@http_response = mock(Net::HTTPResponse, :code => "200", :body => valid_master_release_xml)
|
15
|
+
@http_response_as_file = mock(StringIO, :read => valid_master_release_xml)
|
16
|
+
Zlib::GzipReader.should_receive(:new).and_return(@http_response_as_file)
|
17
|
+
@http_request.should_receive(:start).and_return(@http_response)
|
18
|
+
Net::HTTP.should_receive(:new).and_return(@http_request)
|
19
|
+
|
20
|
+
@master_release = @wrapper.get_master_release(@master_release_id)
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "when calling simple master_release attributes" do
|
24
|
+
|
25
|
+
it "should have an ID attribute" do
|
26
|
+
@master_release.id.should == "6119"
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should have a main_release attribute" do
|
30
|
+
@master_release.main_release.should == "1025"
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should have one or more tracks" do
|
34
|
+
@master_release.tracklist.should be_instance_of(Array)
|
35
|
+
@master_release.tracklist[0].should be_instance_of(Discogs::MasterRelease::Track)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should have one or more genres" do
|
39
|
+
@master_release.genres.should be_instance_of(Array)
|
40
|
+
@master_release.genres[0].should == "Electronic"
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should have one or more images" do
|
44
|
+
@master_release.images.should be_instance_of(Array)
|
45
|
+
@master_release.images[0].should be_instance_of(Discogs::Image)
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "when calling complex master_release attributes" do
|
51
|
+
|
52
|
+
it "should have a duration for the first track" do
|
53
|
+
@master_release.tracklist[0].duration.should == "4:42"
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should have specifications for each image" do
|
57
|
+
specs = [ [ '600', '590', 'primary' ], [ '600', '594', 'secondary' ], [ '600', '297', 'secondary' ], [ '600', '601', 'secondary' ], [ '600', '600', 'secondary' ] ]
|
58
|
+
@master_release.images.each_with_index do |image, index|
|
59
|
+
image.width.should == specs[index][0]
|
60
|
+
image.height.should == specs[index][1]
|
61
|
+
image.type.should == specs[index][2]
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should have a traversible list of styles" do
|
66
|
+
@master_release.styles.should be_instance_of(Array)
|
67
|
+
@master_release.styles[0].should == "Deep House"
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should have an artist associated to the second track" do
|
71
|
+
@master_release.tracklist[1].artists.should be_instance_of(Array)
|
72
|
+
@master_release.tracklist[1].artists[0].should be_instance_of(Discogs::MasterRelease::Track::Artist)
|
73
|
+
@master_release.tracklist[1].artists[0].name.should == "Arakain"
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should have an extra artist associated to the second track" do
|
77
|
+
@master_release.tracklist[1].extraartists.should be_instance_of(Array)
|
78
|
+
@master_release.tracklist[1].extraartists[0].should be_instance_of(Discogs::MasterRelease::Track::Artist)
|
79
|
+
@master_release.tracklist[1].extraartists[0].name.should == "Debustrol"
|
80
|
+
@master_release.tracklist[1].extraartists[0].role.should == "Sadism"
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should have no artist associated to the third track" do
|
84
|
+
@master_release.tracklist[2].artists.should be_nil
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: discogs-wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 1
|
10
|
+
version: 1.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andrew Buntine
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-10-
|
19
|
+
date: 2011-10-23 00:00:00 +11:00
|
20
20
|
default_executable:
|
21
21
|
dependencies: []
|
22
22
|
|
@@ -45,11 +45,14 @@ files:
|
|
45
45
|
- lib/wrapper/resources/image.rb
|
46
46
|
- lib/wrapper/resources/track.rb
|
47
47
|
- lib/wrapper/resources/release.rb
|
48
|
+
- lib/wrapper/resources/master_release.rb
|
49
|
+
- lib/wrapper/resources/video.rb
|
48
50
|
- lib/discogs.rb
|
49
51
|
- Rakefile
|
50
52
|
- README.markdown
|
51
53
|
- discogs.gemspec
|
52
54
|
- spec/wrapper_methods/get_release_spec.rb
|
55
|
+
- spec/wrapper_methods/get_master_release_spec.rb
|
53
56
|
- spec/wrapper_methods/search_spec.rb
|
54
57
|
- spec/wrapper_methods/get_artist_spec.rb
|
55
58
|
- spec/wrapper_methods/get_label_spec.rb
|
@@ -63,6 +66,8 @@ files:
|
|
63
66
|
- spec/resources/label_release_spec.rb
|
64
67
|
- spec/resources/release_label_spec.rb
|
65
68
|
- spec/resources/release_spec.rb
|
69
|
+
- spec/resources/master_release_spec.rb
|
70
|
+
- spec/resources/video_spec.rb
|
66
71
|
- spec/resources/search_result_spec.rb
|
67
72
|
- spec/resources/image_spec.rb
|
68
73
|
- spec/resources/track_spec.rb
|
@@ -105,6 +110,7 @@ specification_version: 3
|
|
105
110
|
summary: Discogs::Wrapper is a full wrapper for the http://www.discogs.com API V2
|
106
111
|
test_files:
|
107
112
|
- spec/wrapper_methods/get_release_spec.rb
|
113
|
+
- spec/wrapper_methods/get_master_release_spec.rb
|
108
114
|
- spec/wrapper_methods/search_spec.rb
|
109
115
|
- spec/wrapper_methods/get_artist_spec.rb
|
110
116
|
- spec/wrapper_methods/get_label_spec.rb
|
@@ -118,6 +124,8 @@ test_files:
|
|
118
124
|
- spec/resources/label_release_spec.rb
|
119
125
|
- spec/resources/release_label_spec.rb
|
120
126
|
- spec/resources/release_spec.rb
|
127
|
+
- spec/resources/master_release_spec.rb
|
128
|
+
- spec/resources/video_spec.rb
|
121
129
|
- spec/resources/search_result_spec.rb
|
122
130
|
- spec/resources/image_spec.rb
|
123
131
|
- spec/resources/track_spec.rb
|