itunes_api 0.3.1 → 0.4.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.
- checksums.yaml +4 -4
- data/README.md +6 -1
- data/itunes_api.gemspec +2 -0
- data/lib/itunes_api/music/album.rb +17 -5
- data/lib/itunes_api/music/artist.rb +17 -5
- data/lib/itunes_api/music/artist_lookup.rb +28 -0
- data/lib/itunes_api/music/artist_search.rb +3 -1
- data/lib/itunes_api/requests/lookup.rb +3 -7
- data/lib/itunes_api/version.rb +1 -1
- data/lib/itunes_api.rb +5 -0
- metadata +31 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9c62e5baa4d01dbfeb1e0b56e8676cd46239498
|
4
|
+
data.tar.gz: a6c357e85297545feb54cfbb6cc2147fd1b166eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c7f150941a05bd2f64c6f75993d1892e8add4f903dcea363173271055b6e6011d337b33437a1c2b8828a168f8dc584ca29584cd09e079f35e4b31109ada11c2
|
7
|
+
data.tar.gz: 6c279bf3e2f3c57a01fea4390c61dc6f6b32c122d121cfe797a146e3bf6bff790e6eb5c37d43677006f897a1825731f28213c67f7ca22952201e720dea5d5736
|
data/README.md
CHANGED
@@ -32,7 +32,12 @@ To return all the AMG ids associated with a search term.
|
|
32
32
|
ItunesApi.artist_ids('Pink Floyd')
|
33
33
|
```
|
34
34
|
|
35
|
-
To return
|
35
|
+
To return a specific artist with albums, based on the AMG id.
|
36
|
+
```ruby
|
37
|
+
ItunesApi.artist_lookup(12345)
|
38
|
+
```
|
39
|
+
|
40
|
+
To get all artists returning from a search term, and their albums.
|
36
41
|
```ruby
|
37
42
|
ItunesApi.artist_search('Pink Floyd')
|
38
43
|
```
|
data/itunes_api.gemspec
CHANGED
@@ -2,17 +2,29 @@ module ItunesApi
|
|
2
2
|
module Music
|
3
3
|
# Wrapper for album results.
|
4
4
|
class Album
|
5
|
-
attr_reader :name, :artwork, :released
|
6
|
-
|
7
5
|
def initialize(data)
|
8
|
-
@
|
9
|
-
@artwork = data['artworkUrl100']
|
10
|
-
@released = Date.parse(data['releaseDate'])
|
6
|
+
@data = data
|
11
7
|
end
|
12
8
|
|
13
9
|
def self.build(albums_data)
|
14
10
|
albums_data.map { |data| new(data) }
|
15
11
|
end
|
12
|
+
|
13
|
+
def artwork
|
14
|
+
@artwork ||= data['artworkUrl100']
|
15
|
+
end
|
16
|
+
|
17
|
+
def name
|
18
|
+
@name ||= data['collectionName']
|
19
|
+
end
|
20
|
+
|
21
|
+
def released
|
22
|
+
@released ||= Date.parse(data['releaseDate'])
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
attr_reader :data
|
16
28
|
end
|
17
29
|
end
|
18
30
|
end
|
@@ -2,13 +2,25 @@ module ItunesApi
|
|
2
2
|
module Music
|
3
3
|
# Artist or Band from the Apple catalog
|
4
4
|
class Artist
|
5
|
-
attr_reader :name, :artist_id, :albums
|
6
|
-
|
7
5
|
def initialize(data)
|
8
|
-
@
|
9
|
-
|
10
|
-
|
6
|
+
@data = data
|
7
|
+
end
|
8
|
+
|
9
|
+
def albums
|
10
|
+
@albums ||= Album.build(data[:albums])
|
11
|
+
end
|
12
|
+
|
13
|
+
def artist_id
|
14
|
+
@artist_id ||= data['amgArtistId']
|
11
15
|
end
|
16
|
+
|
17
|
+
def name
|
18
|
+
@name ||= data['artistName']
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
attr_reader :data
|
12
24
|
end
|
13
25
|
end
|
14
26
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module ItunesApi
|
2
|
+
module Music
|
3
|
+
# Artist or Band resulting from a specific lookup
|
4
|
+
class ArtistLookup
|
5
|
+
def initialize(artist_id)
|
6
|
+
@artist_id = artist_id
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.artist(artist_id)
|
10
|
+
new(artist_id).artist
|
11
|
+
end
|
12
|
+
|
13
|
+
def artist
|
14
|
+
@artist ||= build_artist(artist_id)
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
attr_reader :artist_id
|
20
|
+
|
21
|
+
def build_artist(id)
|
22
|
+
Artist.new(
|
23
|
+
Requests::Lookup.artist_with_albums(id)
|
24
|
+
)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -37,13 +37,9 @@ module ItunesApi
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def artist_data
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
wrappers['wrapperType'] == 'artist'
|
44
|
-
end
|
45
|
-
)
|
46
|
-
)
|
40
|
+
results.find do |wrappers|
|
41
|
+
wrappers['wrapperType'] == 'artist'
|
42
|
+
end
|
47
43
|
end
|
48
44
|
|
49
45
|
def query_values
|
data/lib/itunes_api/version.rb
CHANGED
data/lib/itunes_api.rb
CHANGED
@@ -3,6 +3,7 @@ require 'itunes_api/requests/lookup'
|
|
3
3
|
require 'itunes_api/requests/search'
|
4
4
|
require 'itunes_api/music/album'
|
5
5
|
require 'itunes_api/music/artist'
|
6
|
+
require 'itunes_api/music/artist_lookup'
|
6
7
|
require 'itunes_api/music/artist_search'
|
7
8
|
|
8
9
|
# Interface to the Itunes Api
|
@@ -15,6 +16,10 @@ module ItunesApi
|
|
15
16
|
Requests::Search.artist_ids(name)
|
16
17
|
end
|
17
18
|
|
19
|
+
def self.artist_lookup(artist_id)
|
20
|
+
Music::ArtistLookup.artist(artist_id)
|
21
|
+
end
|
22
|
+
|
18
23
|
def self.artist_search(name)
|
19
24
|
Music::ArtistSearch.artists(name)
|
20
25
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: itunes_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mario D’Arco
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -80,6 +80,34 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: vcr
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: webmock
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
83
111
|
description: An interface to the iTunes Api
|
84
112
|
email:
|
85
113
|
- mariodarco78@icloud.com
|
@@ -100,6 +128,7 @@ files:
|
|
100
128
|
- lib/itunes_api.rb
|
101
129
|
- lib/itunes_api/music/album.rb
|
102
130
|
- lib/itunes_api/music/artist.rb
|
131
|
+
- lib/itunes_api/music/artist_lookup.rb
|
103
132
|
- lib/itunes_api/music/artist_search.rb
|
104
133
|
- lib/itunes_api/requests/base.rb
|
105
134
|
- lib/itunes_api/requests/lookup.rb
|