meta-spotify 0.3.2 → 0.3.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a5bc48dbd8347ca6e7231f8e8d54937e5e2719eb
4
- data.tar.gz: d739fa8e68aa0f307566ad54cb986b63b0a27d4c
3
+ metadata.gz: 960fbabcafa79a3c832fdd7367bc2de387b0ce3b
4
+ data.tar.gz: d6a08c80e9d1f62a3559efeff72cb12f6d5286a5
5
5
  SHA512:
6
- metadata.gz: f54795b5f072778d91732935abded787b990859a8ba955c33e869faf4f0ba49929f9b5d0218e9297749d512b653d424a666a20c00ed9d213ee8086e2766225ac
7
- data.tar.gz: a74543459db1b0389f454af8483004208fb525f6c20f1170e7ef6ba271ac206e8191d84bcd46946b6e77b08894782020fbf9a265755d644c82b56b80923e15d4
6
+ metadata.gz: 704098dd7cef7f6428f533426b94bb6b7077968eb0b87207ac1ee45d7050288ec5aaabcb4bec43a5c5408993bdb022c2db54061fe379d55fc83832650e3c16d6
7
+ data.tar.gz: 60b8ff55290ab4b61ac001bb770a64c0800e8ef8fc6619a13c16562b7b9812dde8912656591170571587b6dfcb01cd623c1f7237fe4f92d6ee8a87581a4ff3de
@@ -1,13 +1,13 @@
1
1
  module MetaSpotify
2
2
  class Album < MetaSpotify::Base
3
-
3
+
4
4
  def self.uri_regex
5
5
  /^spotify:album:([A-Za-z0-9]+)$/
6
6
  end
7
-
8
- attr_reader :released, :artists, :available_territories, :tracks, :upc,
7
+
8
+ attr_reader :released, :artists, :available_territories, :tracks, :upc,
9
9
  :musicbrainz_id, :musicbrainz_uri, :allmusic_id, :allmusic_uri
10
-
10
+
11
11
  def initialize(hash)
12
12
  @name = hash['name']
13
13
  @popularity = hash['popularity'].to_f if hash.has_key? 'popularity'
@@ -29,34 +29,36 @@ module MetaSpotify
29
29
  end
30
30
  @released = hash['released'] if hash.has_key? 'released'
31
31
  @uri = hash['href'] if hash.has_key? 'href'
32
-
32
+
33
33
  if hash['id'].is_a? Array
34
-
34
+
35
35
  hash['id'].each do |id|
36
36
  case id['type']
37
- when 'upc' then
37
+ when 'upc' then
38
38
  @upc = id['__content__']
39
39
  when 'mbid' then
40
40
  @musicbrainz_id = id['__content__']
41
41
  @musicbrainz_uri = id['href']
42
- when 'amgid' then
42
+ when 'amgid' then
43
43
  @allmusic_id = id['__content__']
44
44
  @allmusic_uri = id['href']
45
45
  end
46
46
  end
47
+ else
48
+ @upc = hash['id']['__content__'] if hash.has_key? 'id'
47
49
  end
48
-
50
+
49
51
  @available_territories = if hash.has_key?('availability') && !hash['availability']['territories'].nil?
50
52
  hash['availability']['territories'].split(/\s+/).map {|t| t.downcase } || []
51
53
  else
52
54
  []
53
55
  end
54
56
  end
55
-
57
+
56
58
  def is_available_in?(territory)
57
59
  (@available_territories.include?('worldwide') || @available_territories.include?(territory.downcase))
58
60
  end
59
-
61
+
60
62
  def is_not_available_in?(territory)
61
63
  !is_available_in?(territory)
62
64
  end
@@ -1,3 +1,3 @@
1
1
  module MetaSpotify
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <album xmlns="http://www.spotify.com/ns/music/1">
3
+ <name>Aleph</name>
4
+ <artist href="spotify:artist:3hteYQFiMFbJY7wS0xDymP">
5
+ <name>Gesaffelstein</name>
6
+ </artist>
7
+ <released>2013</released>
8
+ <id type="upc">825646397471</id>
9
+ <availability>
10
+ <territories>AD AR AT AU BE BG BO BR CH CL CO CR CY CZ DE DK DO EC EE ES FI FR GB GR GT HK HN HR HU IE IS IT LT LU LV MC MT MX MY NI NL NO NZ PA PE PH PL PT PY RO SE SG SI SK SV TR TW UY</territories>
11
+ </availability>
12
+ </album>
@@ -19,6 +19,7 @@ end
19
19
  TRACK_URI = "spotify:track:3zBhJBEbDD4a4SO1EaEiBP"
20
20
  ARTIST_URI = "spotify:artist:4YrKBkKSVeqDamzBPWVnSJ"
21
21
  ALBUM_URI = "spotify:album:6G9fHYDCoyEErUkHrFYfs4"
22
+ ALBUM_ONE_UPC_URI = "spotify:album:3MiiF9utmtGnLVITgl0JP7"
22
23
 
23
24
  class Test::Unit::TestCase
24
25
  end
@@ -16,7 +16,7 @@ class TestAlbum < Test::Unit::TestCase
16
16
  assert @worldwide_album.is_available_in?('UK')
17
17
  end
18
18
  end
19
-
19
+
20
20
  context "searching for an album name" do
21
21
  setup do
22
22
  FakeWeb.register_uri(:get,
@@ -44,7 +44,7 @@ class TestAlbum < Test::Unit::TestCase
44
44
  assert_equal 6, @results[:total_results]
45
45
  end
46
46
  end
47
-
47
+
48
48
  context "looking up a album" do
49
49
  setup do
50
50
  FakeWeb.register_uri(:get,
@@ -75,6 +75,25 @@ class TestAlbum < Test::Unit::TestCase
75
75
  end
76
76
  end
77
77
  end
78
+
79
+ context "looking up an album with just an upc code" do
80
+ setup do
81
+ FakeWeb.register_uri(:get,
82
+ "http://ws.spotify.com/lookup/1/?uri=#{CGI.escape ALBUM_ONE_UPC_URI}",
83
+ :body => fixture_file("album_one_upc.xml"))
84
+ @result = MetaSpotify::Album.lookup(ALBUM_ONE_UPC_URI)
85
+ end
86
+ should "fetch an album and return an album object" do
87
+ assert_kind_of MetaSpotify::Album, @result
88
+ assert_equal "Aleph", @result.name
89
+ assert_equal ALBUM_ONE_UPC_URI, @result.uri
90
+ assert_equal "2013", @result.released
91
+ assert_equal "825646397471", @result.upc
92
+ assert_equal '3MiiF9utmtGnLVITgl0JP7', @result.spotify_id
93
+ assert_equal 'http://open.spotify.com/album/3MiiF9utmtGnLVITgl0JP7', @result.http_uri
94
+ end
95
+ end
96
+
78
97
  context "looking up an album with extra details" do
79
98
  setup do
80
99
  FakeWeb.register_uri(:get,
@@ -82,7 +101,7 @@ class TestAlbum < Test::Unit::TestCase
82
101
  :body => fixture_file('album_with_trackdetail.xml'))
83
102
  @result = MetaSpotify::Album.lookup(ALBUM_URI, :extras => 'trackdetail')
84
103
  end
85
-
104
+
86
105
  should "fetch an album and return an object with more detailed track information" do
87
106
  assert_kind_of MetaSpotify::Album, @result
88
107
  assert_kind_of MetaSpotify::Track, @result.tracks.first
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meta-spotify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phil Nash
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-25 00:00:00.000000000 Z
11
+ date: 2014-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -75,6 +75,7 @@ files:
75
75
  - lib/meta-spotify/version.rb
76
76
  - meta-spotify.gemspec
77
77
  - test/fixtures/album.xml
78
+ - test/fixtures/album_one_upc.xml
78
79
  - test/fixtures/album_search.xml
79
80
  - test/fixtures/album_with_trackdetail.xml
80
81
  - test/fixtures/artist.xml
@@ -113,6 +114,7 @@ specification_version: 4
113
114
  summary: A ruby wrapper for the Spotify Metadata API
114
115
  test_files:
115
116
  - test/fixtures/album.xml
117
+ - test/fixtures/album_one_upc.xml
116
118
  - test/fixtures/album_search.xml
117
119
  - test/fixtures/album_with_trackdetail.xml
118
120
  - test/fixtures/artist.xml
@@ -126,3 +128,4 @@ test_files:
126
128
  - test/test_album.rb
127
129
  - test/test_artist.rb
128
130
  - test/test_track.rb
131
+ has_rdoc: