fanart_api 0.2.1 → 0.3.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/.gitignore +2 -15
- data/.travis.yml +2 -1
- data/CHANGELOG.md +31 -0
- data/README.md +64 -31
- data/fanart_api.gemspec +5 -3
- data/lib/fanart_api.rb +2 -0
- data/lib/fanart_api/base.rb +4 -4
- data/lib/fanart_api/client.rb +7 -7
- data/lib/fanart_api/movie.rb +97 -5
- data/lib/fanart_api/music.rb +167 -9
- data/lib/fanart_api/tv.rb +95 -5
- data/lib/fanart_api/version.rb +1 -1
- data/spec/functionals/movie_spec.rb +71 -14
- data/spec/functionals/music_spec.rb +121 -24
- data/spec/functionals/tv_spec.rb +69 -12
- data/spec/integrations/movie_spec.rb +21 -9
- data/spec/integrations/music_spec.rb +39 -17
- data/spec/spec_helper.rb +2 -4
- data/spec/support/.keep +0 -0
- data/spec/support/api_key.rb.example +1 -0
- metadata +46 -13
data/lib/fanart_api/tv.rb
CHANGED
@@ -1,18 +1,108 @@
|
|
1
|
-
# documentation: http://fanart.tv/api-docs/tv-api
|
2
1
|
class FanartApi::Tv < FanartApi::Base
|
3
|
-
|
2
|
+
include Ov
|
3
|
+
|
4
|
+
# Find specific tv data.
|
5
|
+
#
|
6
|
+
# access: FREE
|
7
|
+
# param:
|
8
|
+
# find(1234)
|
9
|
+
# output: Faraday::Response instance with Hash body
|
10
|
+
# example: http://docs.fanarttv.apiary.io/#tv
|
11
|
+
let :find, Any do |id|
|
12
|
+
find(id: id)
|
13
|
+
end
|
14
|
+
|
15
|
+
# Find specific tv data.
|
16
|
+
#
|
17
|
+
# access: FREE
|
18
|
+
# param:
|
19
|
+
# find(id: 1234)
|
20
|
+
# output: Faraday::Response instance with Hash body
|
21
|
+
# example: http://docs.fanarttv.apiary.io/#tv
|
22
|
+
let :find, Hash do |options|
|
4
23
|
find_path_with_params(options).get
|
5
24
|
end
|
6
25
|
|
7
|
-
|
26
|
+
# Find specific tv data - return only url.
|
27
|
+
#
|
28
|
+
# access: FREE
|
29
|
+
# param:
|
30
|
+
# find_url(1234)
|
31
|
+
# output: url string
|
32
|
+
let :find_url, Any do |id|
|
33
|
+
find_url(id: id)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Find specific tv data - return only url.
|
37
|
+
#
|
38
|
+
# access: FREE
|
39
|
+
# param:
|
40
|
+
# find_url(id: 1234)
|
41
|
+
# output: url string
|
42
|
+
let :find_url, Hash do |options|
|
8
43
|
find_path_with_params(options).url
|
9
44
|
end
|
10
45
|
|
11
|
-
|
46
|
+
# Get latest tv data.
|
47
|
+
#
|
48
|
+
# access: FREE
|
49
|
+
# param:
|
50
|
+
# latest
|
51
|
+
# output: Faraday::Response instance with Array body
|
52
|
+
# example: http://docs.fanarttv.apiary.io/#tv
|
53
|
+
let :latest do |date|
|
54
|
+
latest({})
|
55
|
+
end
|
56
|
+
|
57
|
+
# Get latest tv data.
|
58
|
+
#
|
59
|
+
# access: FREE
|
60
|
+
# param:
|
61
|
+
# latest(1234)
|
62
|
+
# output: Faraday::Response instance with Array body
|
63
|
+
# example: http://docs.fanarttv.apiary.io/#tv
|
64
|
+
let :latest, Any do |date|
|
65
|
+
latest(date: date)
|
66
|
+
end
|
67
|
+
|
68
|
+
# Get latest tv data.
|
69
|
+
#
|
70
|
+
# access: FREE
|
71
|
+
# param:
|
72
|
+
# latest(date: 1234)
|
73
|
+
# output: Faraday::Response instance with Array body
|
74
|
+
# example: http://docs.fanarttv.apiary.io/#tv
|
75
|
+
let :latest, Hash do |options|
|
12
76
|
latest_path_with_params(options).get
|
13
77
|
end
|
14
78
|
|
15
|
-
|
79
|
+
# Get latest tv data - return only url.
|
80
|
+
#
|
81
|
+
# access: FREE
|
82
|
+
# param:
|
83
|
+
# latest_url
|
84
|
+
# output: url string
|
85
|
+
let :latest_url do |date|
|
86
|
+
latest_url({})
|
87
|
+
end
|
88
|
+
|
89
|
+
# Get latest tv data - return only url.
|
90
|
+
#
|
91
|
+
# access: FREE
|
92
|
+
# param:
|
93
|
+
# latest_url(1234)
|
94
|
+
# output: url string
|
95
|
+
let :latest_url, Any do |date|
|
96
|
+
latest_url(date: date)
|
97
|
+
end
|
98
|
+
|
99
|
+
# Get latest tv data - return only url.
|
100
|
+
#
|
101
|
+
# access: FREE
|
102
|
+
# param:
|
103
|
+
# latest_url(date: 1234)
|
104
|
+
# output: url string
|
105
|
+
let :latest_url, Hash do |options|
|
16
106
|
latest_path_with_params(options).url
|
17
107
|
end
|
18
108
|
|
data/lib/fanart_api/version.rb
CHANGED
@@ -5,44 +5,101 @@ describe FanartApi::Movie do
|
|
5
5
|
let(:model) { client.movie }
|
6
6
|
|
7
7
|
let(:movies_data) { File.read('spec/fixtures/find_movies.json') }
|
8
|
-
let(:
|
8
|
+
let(:latest_movies_data) { File.read('spec/fixtures/latest_movies.json') }
|
9
9
|
|
10
10
|
let(:faraday_stubs) do
|
11
11
|
Faraday::Adapter::Test::Stubs.new do |stub|
|
12
12
|
stub.get('/v3/movies/1234?api_key=123456789') { [200, { content_type: 'json' }, movies_data] }
|
13
|
-
stub.get('/v3/movies/latest?api_key=123456789&date=123') { [200, { content_type: 'json' },
|
13
|
+
stub.get('/v3/movies/latest?api_key=123456789&date=123') { [200, { content_type: 'json' }, latest_movies_data] }
|
14
|
+
stub.get('/v3/movies/latest?api_key=123456789') { [200, { content_type: 'json' }, latest_movies_data] }
|
14
15
|
end
|
15
16
|
end
|
16
17
|
|
17
18
|
describe '.find' do
|
18
|
-
|
19
|
-
|
19
|
+
context 'hash attributes' do
|
20
|
+
it 'should return Faraday::Response class' do
|
21
|
+
expect(model.find(id: 1234)).to be_a(Faraday::Response)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should return Hash class for body reponse' do
|
25
|
+
expect(model.find(id: 1234).body).to be_a(Hash)
|
26
|
+
end
|
20
27
|
end
|
21
28
|
|
22
|
-
|
23
|
-
|
29
|
+
context 'normal attributes' do
|
30
|
+
it 'should return Faraday::Response class' do
|
31
|
+
expect(model.find(1234)).to be_a(Faraday::Response)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should return Hash class for body reponse' do
|
35
|
+
expect(model.find(1234).body).to be_a(Hash)
|
36
|
+
end
|
24
37
|
end
|
25
38
|
end
|
26
39
|
|
27
40
|
describe '.find_url' do
|
28
|
-
|
29
|
-
|
41
|
+
context 'hash attributes' do
|
42
|
+
it 'should return correct url' do
|
43
|
+
expect(model.find_url(id: 1234)).to eq('http://webservice.fanart.tv/v3/movies/1234?api_key=123456789')
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
context 'normal attributes' do
|
48
|
+
it 'should return correct url' do
|
49
|
+
expect(model.find_url(1234)).to eq('http://webservice.fanart.tv/v3/movies/1234?api_key=123456789')
|
50
|
+
end
|
30
51
|
end
|
31
52
|
end
|
32
53
|
|
33
54
|
describe '.latest' do
|
34
|
-
|
35
|
-
|
55
|
+
context 'hash attributes' do
|
56
|
+
it 'should return Faraday::Response class' do
|
57
|
+
expect(model.latest(date: 123)).to be_a(Faraday::Response)
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should return Hash class for body reponse' do
|
61
|
+
expect(model.latest(date: 123).body).to be_a(Array)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context 'normal attributes' do
|
66
|
+
it 'should return Faraday::Response class' do
|
67
|
+
expect(model.latest(123)).to be_a(Faraday::Response)
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should return Hash class for body reponse' do
|
71
|
+
expect(model.latest(123).body).to be_a(Array)
|
72
|
+
end
|
36
73
|
end
|
37
74
|
|
38
|
-
|
39
|
-
|
75
|
+
context 'without attributes' do
|
76
|
+
it 'should return Faraday::Response class' do
|
77
|
+
expect(model.latest).to be_a(Faraday::Response)
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should return Hash class for body reponse' do
|
81
|
+
expect(model.latest.body).to be_a(Array)
|
82
|
+
end
|
40
83
|
end
|
41
84
|
end
|
42
85
|
|
43
86
|
describe '.latest_url' do
|
44
|
-
|
45
|
-
|
87
|
+
context 'hash attributes' do
|
88
|
+
it 'should return correct url' do
|
89
|
+
expect(model.latest_url(date: 123)).to eq('http://webservice.fanart.tv/v3/movies/latest?api_key=123456789&date=123')
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
context 'normal attributes' do
|
94
|
+
it 'should return correct url' do
|
95
|
+
expect(model.latest_url(123)).to eq('http://webservice.fanart.tv/v3/movies/latest?api_key=123456789&date=123')
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
context 'without attributes' do
|
100
|
+
it 'should return correct url' do
|
101
|
+
expect(model.latest_url).to eq('http://webservice.fanart.tv/v3/movies/latest?api_key=123456789')
|
102
|
+
end
|
46
103
|
end
|
47
104
|
end
|
48
105
|
end
|
@@ -13,70 +13,167 @@ describe FanartApi::Music do
|
|
13
13
|
stub.get('/v3/music/albums/1234?api_key=123456789') { [200, { content_type: 'json' }, music_data] }
|
14
14
|
stub.get('/v3/music/labels/1234?api_key=123456789') { [200, { content_type: 'json' }, music_data] }
|
15
15
|
stub.get('/v3/music/latest?api_key=123456789&date=123') { [200, { content_type: 'json' }, latest_music_data] }
|
16
|
+
stub.get('/v3/music/latest?api_key=123456789') { [200, { content_type: 'json' }, latest_music_data] }
|
16
17
|
end
|
17
18
|
end
|
18
19
|
|
19
20
|
describe '.artist' do
|
20
|
-
|
21
|
-
|
21
|
+
context 'hash attributes' do
|
22
|
+
it 'should return Faraday::Response class' do
|
23
|
+
expect(model.artist(id: 1234)).to be_a(Faraday::Response)
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should return Hash class for body reponse' do
|
27
|
+
expect(model.artist(id: 1234).body).to be_a(Hash)
|
28
|
+
end
|
22
29
|
end
|
23
30
|
|
24
|
-
|
25
|
-
|
31
|
+
context 'normal attributes' do
|
32
|
+
it 'should return Faraday::Response class' do
|
33
|
+
expect(model.artist(1234)).to be_a(Faraday::Response)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should return Hash class for body reponse' do
|
37
|
+
expect(model.artist(1234).body).to be_a(Hash)
|
38
|
+
end
|
26
39
|
end
|
27
40
|
end
|
28
41
|
|
29
42
|
describe '.artist_url' do
|
30
|
-
|
31
|
-
|
43
|
+
context 'hash attributes' do
|
44
|
+
it 'should return correct url' do
|
45
|
+
expect(model.artist_url(id: 1234)).to eq('http://webservice.fanart.tv/v3/music/1234?api_key=123456789')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context 'normal attributes' do
|
50
|
+
it 'should return correct url' do
|
51
|
+
expect(model.artist_url(1234)).to eq('http://webservice.fanart.tv/v3/music/1234?api_key=123456789')
|
52
|
+
end
|
32
53
|
end
|
33
54
|
end
|
34
55
|
|
35
56
|
describe '.album' do
|
36
|
-
|
37
|
-
|
57
|
+
context 'hash attributes' do
|
58
|
+
it 'should return Faraday::Response class' do
|
59
|
+
expect(model.album(id: 1234)).to be_a(Faraday::Response)
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'should return Hash class for body reponse' do
|
63
|
+
expect(model.album(id: 1234).body).to be_a(Hash)
|
64
|
+
end
|
38
65
|
end
|
39
66
|
|
40
|
-
|
41
|
-
|
67
|
+
context 'normal attributes' do
|
68
|
+
it 'should return Faraday::Response class' do
|
69
|
+
expect(model.album(1234)).to be_a(Faraday::Response)
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'should return Hash class for body reponse' do
|
73
|
+
expect(model.album(1234).body).to be_a(Hash)
|
74
|
+
end
|
42
75
|
end
|
43
76
|
end
|
44
77
|
|
45
78
|
describe '.album_url' do
|
46
|
-
|
47
|
-
|
79
|
+
context 'hash attributes' do
|
80
|
+
it 'should return correct url' do
|
81
|
+
expect(model.album_url(id: 1234)).to eq('http://webservice.fanart.tv/v3/music/albums/1234?api_key=123456789')
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
context 'normal attributes' do
|
86
|
+
it 'should return correct url' do
|
87
|
+
expect(model.album_url(1234)).to eq('http://webservice.fanart.tv/v3/music/albums/1234?api_key=123456789')
|
88
|
+
end
|
48
89
|
end
|
49
90
|
end
|
50
91
|
|
51
92
|
describe '.label' do
|
52
|
-
|
53
|
-
|
93
|
+
context 'hash attributes' do
|
94
|
+
it 'should return Faraday::Response class' do
|
95
|
+
expect(model.label(id: 1234)).to be_a(Faraday::Response)
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should return Hash class for body reponse' do
|
99
|
+
expect(model.label(id: 1234).body).to be_a(Hash)
|
100
|
+
end
|
54
101
|
end
|
55
102
|
|
56
|
-
|
57
|
-
|
103
|
+
context 'normal attributes' do
|
104
|
+
it 'should return Faraday::Response class' do
|
105
|
+
expect(model.label(1234)).to be_a(Faraday::Response)
|
106
|
+
end
|
107
|
+
|
108
|
+
it 'should return Hash class for body reponse' do
|
109
|
+
expect(model.label(1234).body).to be_a(Hash)
|
110
|
+
end
|
58
111
|
end
|
59
112
|
end
|
60
113
|
|
61
114
|
describe '.label_url' do
|
62
|
-
|
63
|
-
|
115
|
+
context 'hash attributes' do
|
116
|
+
it 'should return correct url' do
|
117
|
+
expect(model.label_url(id: 1234)).to eq('http://webservice.fanart.tv/v3/music/labels/1234?api_key=123456789')
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
context 'normal attributes' do
|
122
|
+
it 'should return correct url' do
|
123
|
+
expect(model.label_url(1234)).to eq('http://webservice.fanart.tv/v3/music/labels/1234?api_key=123456789')
|
124
|
+
end
|
64
125
|
end
|
65
126
|
end
|
66
127
|
|
67
128
|
describe '.latest' do
|
68
|
-
|
69
|
-
|
129
|
+
context 'hash attributes' do
|
130
|
+
it 'should return Faraday::Response class' do
|
131
|
+
expect(model.latest(date: 123)).to be_a(Faraday::Response)
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'should return Hash class for body reponse' do
|
135
|
+
expect(model.latest(date: 123).body).to be_a(Array)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
context 'normal attributes' do
|
140
|
+
it 'should return Faraday::Response class' do
|
141
|
+
expect(model.latest(123)).to be_a(Faraday::Response)
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'should return Hash class for body reponse' do
|
145
|
+
expect(model.latest(123).body).to be_a(Array)
|
146
|
+
end
|
70
147
|
end
|
71
148
|
|
72
|
-
|
73
|
-
|
149
|
+
context 'without attributes' do
|
150
|
+
it 'should return Faraday::Response class' do
|
151
|
+
expect(model.latest).to be_a(Faraday::Response)
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'should return Hash class for body reponse' do
|
155
|
+
expect(model.latest.body).to be_a(Array)
|
156
|
+
end
|
74
157
|
end
|
75
158
|
end
|
76
159
|
|
77
160
|
describe '.latest_url' do
|
78
|
-
|
79
|
-
|
161
|
+
context 'hash attributes' do
|
162
|
+
it 'should return correct url' do
|
163
|
+
expect(model.latest_url(date: 123)).to eq('http://webservice.fanart.tv/v3/music/latest?api_key=123456789&date=123')
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
context 'normal attributes' do
|
168
|
+
it 'should return correct url' do
|
169
|
+
expect(model.latest_url(123)).to eq('http://webservice.fanart.tv/v3/music/latest?api_key=123456789&date=123')
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
context 'without attributes' do
|
174
|
+
it 'should return correct url' do
|
175
|
+
expect(model.latest_url).to eq('http://webservice.fanart.tv/v3/music/latest?api_key=123456789')
|
176
|
+
end
|
80
177
|
end
|
81
178
|
end
|
82
179
|
end
|
data/spec/functionals/tv_spec.rb
CHANGED
@@ -11,38 +11,95 @@ describe FanartApi::Tv do
|
|
11
11
|
Faraday::Adapter::Test::Stubs.new do |stub|
|
12
12
|
stub.get('/v3/tv/1234?api_key=123456789') { [200, { content_type: 'json' }, tv_data] }
|
13
13
|
stub.get('/v3/tv/latest?api_key=123456789&date=123') { [200, { content_type: 'json' }, latest_tv_data] }
|
14
|
+
stub.get('/v3/tv/latest?api_key=123456789') { [200, { content_type: 'json' }, latest_tv_data] }
|
14
15
|
end
|
15
16
|
end
|
16
17
|
|
17
18
|
describe '.find' do
|
18
|
-
|
19
|
-
|
19
|
+
context 'hash attributes' do
|
20
|
+
it 'should return Faraday::Response class' do
|
21
|
+
expect(model.find(id: 1234)).to be_a(Faraday::Response)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should return Hash class for body reponse' do
|
25
|
+
expect(model.find(id: 1234).body).to be_a(Hash)
|
26
|
+
end
|
20
27
|
end
|
21
28
|
|
22
|
-
|
23
|
-
|
29
|
+
context 'normal attributes' do
|
30
|
+
it 'should return Faraday::Response class' do
|
31
|
+
expect(model.find(1234)).to be_a(Faraday::Response)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should return Hash class for body reponse' do
|
35
|
+
expect(model.find(1234).body).to be_a(Hash)
|
36
|
+
end
|
24
37
|
end
|
25
38
|
end
|
26
39
|
|
27
40
|
describe '.find_url' do
|
28
|
-
|
29
|
-
|
41
|
+
context 'hash attributes' do
|
42
|
+
it 'should return correct url' do
|
43
|
+
expect(model.find_url(id: 1234)).to eq('http://webservice.fanart.tv/v3/tv/1234?api_key=123456789')
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
context 'normal attributes' do
|
48
|
+
it 'should return correct url' do
|
49
|
+
expect(model.find_url(1234)).to eq('http://webservice.fanart.tv/v3/tv/1234?api_key=123456789')
|
50
|
+
end
|
30
51
|
end
|
31
52
|
end
|
32
53
|
|
33
54
|
describe '.latest' do
|
34
|
-
|
35
|
-
|
55
|
+
context 'hash attributes' do
|
56
|
+
it 'should return Faraday::Response class' do
|
57
|
+
expect(model.latest(date: 123)).to be_a(Faraday::Response)
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should return Hash class for body reponse' do
|
61
|
+
expect(model.latest(date: 123).body).to be_a(Array)
|
62
|
+
end
|
36
63
|
end
|
37
64
|
|
38
|
-
|
39
|
-
|
65
|
+
context 'normal attributes' do
|
66
|
+
it 'should return Faraday::Response class' do
|
67
|
+
expect(model.latest(123)).to be_a(Faraday::Response)
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should return Hash class for body reponse' do
|
71
|
+
expect(model.latest(123).body).to be_a(Array)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
context 'without attributes' do
|
76
|
+
it 'should return Faraday::Response class' do
|
77
|
+
expect(model.latest).to be_a(Faraday::Response)
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should return Hash class for body reponse' do
|
81
|
+
expect(model.latest.body).to be_a(Array)
|
82
|
+
end
|
40
83
|
end
|
41
84
|
end
|
42
85
|
|
43
86
|
describe '.latest_url' do
|
44
|
-
|
45
|
-
|
87
|
+
context 'hash attributes' do
|
88
|
+
it 'should return correct url' do
|
89
|
+
expect(model.latest_url(date: 123)).to eq('http://webservice.fanart.tv/v3/tv/latest?api_key=123456789&date=123')
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
context 'normal attributes' do
|
94
|
+
it 'should return correct url' do
|
95
|
+
expect(model.latest_url(123)).to eq('http://webservice.fanart.tv/v3/tv/latest?api_key=123456789&date=123')
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
context 'without attributes' do
|
100
|
+
it 'should return correct url' do
|
101
|
+
expect(model.latest_url).to eq('http://webservice.fanart.tv/v3/tv/latest?api_key=123456789')
|
102
|
+
end
|
46
103
|
end
|
47
104
|
end
|
48
105
|
end
|