thetvdb_api 0.1.2 → 0.2.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 +72 -1
- data/lib/thetvdb_api.rb +4 -1
- data/lib/thetvdb_api/actor.rb +2 -2
- data/lib/thetvdb_api/banner.rb +2 -2
- data/lib/thetvdb_api/base.rb +30 -9
- data/lib/thetvdb_api/episode.rb +10 -10
- data/lib/thetvdb_api/mappers/actor.rb +17 -0
- data/lib/thetvdb_api/mappers/actors.rb +10 -0
- data/lib/thetvdb_api/mappers/banner.rb +32 -0
- data/lib/thetvdb_api/mappers/banners.rb +10 -0
- data/lib/thetvdb_api/mappers/base.rb +13 -0
- data/lib/thetvdb_api/mappers/episode.rb +32 -0
- data/lib/thetvdb_api/mappers/full_series.rb +12 -0
- data/lib/thetvdb_api/mappers/search_episode.rb +10 -0
- data/lib/thetvdb_api/mappers/search_series.rb +10 -0
- data/lib/thetvdb_api/mappers/search_series/series.rb +25 -0
- data/lib/thetvdb_api/mappers/series.rb +37 -0
- data/lib/thetvdb_api/mappers/update.rb +14 -0
- data/lib/thetvdb_api/mappers/update/banner.rb +19 -0
- data/lib/thetvdb_api/mappers/update/element.rb +10 -0
- data/lib/thetvdb_api/mappers/update/episode.rb +8 -0
- data/lib/thetvdb_api/mappers/update/series.rb +8 -0
- data/lib/thetvdb_api/response.rb +30 -0
- data/lib/thetvdb_api/search.rb +8 -8
- data/lib/thetvdb_api/series.rb +4 -4
- data/lib/thetvdb_api/update.rb +42 -8
- data/lib/thetvdb_api/version.rb +1 -1
- data/spec/integrations/actor_spec.rb +1 -1
- data/spec/integrations/banner_spec.rb +1 -1
- data/spec/integrations/client_spec.rb +16 -16
- data/spec/integrations/episode_spec.rb +4 -4
- data/spec/integrations/search_spec.rb +5 -5
- data/spec/integrations/series_spec.rb +2 -2
- data/spec/integrations/update_spec.rb +10 -4
- data/spec/spec_helper.rb +4 -0
- data/spec/thetvdb_api/base_spec.rb +39 -7
- data/spec/thetvdb_api/episode_spec.rb +4 -4
- data/spec/thetvdb_api/mappers/actor_spec.rb +15 -0
- data/spec/thetvdb_api/mappers/banner_spec.rb +31 -0
- data/spec/thetvdb_api/mappers/search_series/series_spec.rb +15 -0
- data/spec/thetvdb_api/mappers/series_spec.rb +31 -0
- data/spec/thetvdb_api/mappers/update/banner_spec.rb +15 -0
- data/spec/thetvdb_api/response_spec.rb +60 -0
- data/spec/thetvdb_api/search_spec.rb +13 -13
- data/spec/thetvdb_api/series_spec.rb +6 -6
- data/spec/thetvdb_api/update_spec.rb +24 -0
- data/thetvdb_api.gemspec +2 -1
- metadata +48 -5
data/spec/spec_helper.rb
CHANGED
@@ -7,6 +7,14 @@ describe ThetvdbApi::Base do
|
|
7
7
|
let(:klass) { ExampleClass }
|
8
8
|
let(:model) { klass.new(ThetvdbApi::Client.new) }
|
9
9
|
|
10
|
+
describe '.connection' do
|
11
|
+
it 'should create instance of Faraday' do
|
12
|
+
Faraday.should_receive(:new).with(url: 'http://thetvdb.com/api/')
|
13
|
+
|
14
|
+
model.connection
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
10
18
|
describe '.get' do
|
11
19
|
it 'should set @uri_template' do
|
12
20
|
model.get('http://example.com')
|
@@ -23,7 +31,7 @@ describe ThetvdbApi::Base do
|
|
23
31
|
it 'should set @params' do
|
24
32
|
model.params(sample: 'test')
|
25
33
|
|
26
|
-
model.instance_variable_get('@params').should == { sample: 'test' }
|
34
|
+
model.instance_variable_get('@params').should == { language: 'en', sample: 'test' }
|
27
35
|
end
|
28
36
|
|
29
37
|
it 'should return self' do
|
@@ -32,9 +40,14 @@ describe ThetvdbApi::Base do
|
|
32
40
|
end
|
33
41
|
|
34
42
|
describe '.response' do
|
43
|
+
it 'should raise error when @uri_template is not filled' do
|
44
|
+
-> { model.response }.should raise_error
|
45
|
+
end
|
46
|
+
|
35
47
|
it 'should call get klass method' do
|
36
48
|
model.instance_variable_set('@uri_template', URITemplate.new('{api_key}/series/{id}'))
|
37
|
-
|
49
|
+
model.stub(:connection).and_return(double(get: true))
|
50
|
+
model.connection.should_receive(:get)
|
38
51
|
|
39
52
|
model.response
|
40
53
|
end
|
@@ -44,7 +57,16 @@ describe ThetvdbApi::Base do
|
|
44
57
|
it 'should receive correct uri string' do
|
45
58
|
model.instance_variable_set('@uri_template', URITemplate.new('{api_key}/series/{id}'))
|
46
59
|
|
47
|
-
model.prepare_uri.should == "#{
|
60
|
+
model.prepare_uri.should == "#{model.api_key}/series/"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe '.url' do
|
65
|
+
it 'should receive correct string' do
|
66
|
+
model.stub(:base_url).and_return('BASE_URL/')
|
67
|
+
model.stub(:uri).and_return('URI')
|
68
|
+
|
69
|
+
model.url.should == 'BASE_URL/URI'
|
48
70
|
end
|
49
71
|
end
|
50
72
|
|
@@ -53,7 +75,7 @@ describe ThetvdbApi::Base do
|
|
53
75
|
model.instance_variable_set('@uri_template', URITemplate.new('{api_key}/series/{id}'))
|
54
76
|
model.instance_variable_set('@params', id: '1234')
|
55
77
|
|
56
|
-
model.uri.should == "#{
|
78
|
+
model.uri.should == "#{model.api_key}/series/1234"
|
57
79
|
end
|
58
80
|
end
|
59
81
|
|
@@ -72,13 +94,23 @@ describe ThetvdbApi::Base do
|
|
72
94
|
end
|
73
95
|
end
|
74
96
|
|
75
|
-
describe '.
|
76
|
-
it 'should use default
|
97
|
+
describe '.language' do
|
98
|
+
it 'should use default language' do
|
77
99
|
klass.new(ThetvdbApi::Client.new).language.should == 'en'
|
78
100
|
end
|
79
101
|
|
80
|
-
it 'should set
|
102
|
+
it 'should set language' do
|
81
103
|
klass.new(ThetvdbApi::Client.new(language: 'LANGUAGE')).language.should == 'LANGUAGE'
|
82
104
|
end
|
83
105
|
end
|
106
|
+
|
107
|
+
describe '.api_key' do
|
108
|
+
it 'should use default api_key' do
|
109
|
+
klass.new(ThetvdbApi::Client.new).api_key.should == ThetvdbApi::Configuration.api_key
|
110
|
+
end
|
111
|
+
|
112
|
+
it 'should set api_Key' do
|
113
|
+
klass.new(ThetvdbApi::Client.new(api_key: 'API_KEY')).api_key.should == 'API_KEY'
|
114
|
+
end
|
115
|
+
end
|
84
116
|
end
|
@@ -13,7 +13,7 @@ describe ThetvdbApi::Episode do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
it 'should call params with specific params' do
|
16
|
-
model.should_receive(:params).with(series_id: '1234', season: '1', episode: '1',
|
16
|
+
model.should_receive(:params).with(series_id: '1234', season: '1', episode: '1', order: 'default').and_return(mock_model)
|
17
17
|
|
18
18
|
model.find_by_default_order('1234', '1', '1')
|
19
19
|
end
|
@@ -27,7 +27,7 @@ describe ThetvdbApi::Episode do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'should call params with specific params' do
|
30
|
-
model.should_receive(:params).with(series_id: '1234', season: '1', episode: '1',
|
30
|
+
model.should_receive(:params).with(series_id: '1234', season: '1', episode: '1', order: 'dvd').and_return(mock_model)
|
31
31
|
|
32
32
|
model.find_by_dvd_order('1234', '1', '1')
|
33
33
|
end
|
@@ -41,7 +41,7 @@ describe ThetvdbApi::Episode do
|
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'should call params with specific params' do
|
44
|
-
model.should_receive(:params).with(series_id: '1234', absolute: '1'
|
44
|
+
model.should_receive(:params).with(series_id: '1234', absolute: '1').and_return(mock_model)
|
45
45
|
|
46
46
|
model.find_by_absolute_order('1234', '1')
|
47
47
|
end
|
@@ -55,7 +55,7 @@ describe ThetvdbApi::Episode do
|
|
55
55
|
end
|
56
56
|
|
57
57
|
it 'should call params with specific params' do
|
58
|
-
model.should_receive(:params).with(episode_id: '1234'
|
58
|
+
model.should_receive(:params).with(episode_id: '1234').and_return(mock_model)
|
59
59
|
|
60
60
|
model.find('1234')
|
61
61
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'thetvdb_api/mappers/actor'
|
3
|
+
|
4
|
+
describe ThetvdbApi::Mappers::Actor do
|
5
|
+
let(:klass) { ThetvdbApi::Mappers::Actor }
|
6
|
+
let(:model) { klass.new }
|
7
|
+
|
8
|
+
describe '.image_url' do
|
9
|
+
it 'should return correct string' do
|
10
|
+
model.stub(:image_path).and_return('PATH')
|
11
|
+
|
12
|
+
model.image_url.should == 'http://thetvdb.com/banners/PATH'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'thetvdb_api/mappers/banner'
|
3
|
+
|
4
|
+
describe ThetvdbApi::Mappers::Banner do
|
5
|
+
let(:klass) { ThetvdbApi::Mappers::Banner }
|
6
|
+
let(:model) { klass.new }
|
7
|
+
|
8
|
+
describe '.url' do
|
9
|
+
it 'should return correct string' do
|
10
|
+
model.stub(:path).and_return('PATH')
|
11
|
+
|
12
|
+
model.url.should == 'http://thetvdb.com/banners/PATH'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '.thumbnail_url' do
|
17
|
+
it 'should return correct string' do
|
18
|
+
model.stub(:thumbnail_path).and_return('PATH')
|
19
|
+
|
20
|
+
model.thumbnail_url.should == 'http://thetvdb.com/banners/PATH'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '.vignette_url' do
|
25
|
+
it 'should return correct string' do
|
26
|
+
model.stub(:vignette_path).and_return('PATH')
|
27
|
+
|
28
|
+
model.vignette_url.should == 'http://thetvdb.com/banners/PATH'
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'thetvdb_api/mappers/search_series/series'
|
3
|
+
|
4
|
+
describe ThetvdbApi::Mappers::SearchSeries::Series do
|
5
|
+
let(:klass) { ThetvdbApi::Mappers::SearchSeries::Series }
|
6
|
+
let(:model) { klass.new }
|
7
|
+
|
8
|
+
describe '.banner_url' do
|
9
|
+
it 'should return correct string' do
|
10
|
+
model.stub(:banner_path).and_return('PATH')
|
11
|
+
|
12
|
+
model.banner_url.should == 'http://thetvdb.com/banners/PATH'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'thetvdb_api/mappers/series'
|
3
|
+
|
4
|
+
describe ThetvdbApi::Mappers::Series do
|
5
|
+
let(:klass) { ThetvdbApi::Mappers::Series }
|
6
|
+
let(:model) { klass.new }
|
7
|
+
|
8
|
+
describe '.banner_url' do
|
9
|
+
it 'should return correct string' do
|
10
|
+
model.stub(:banner_path).and_return('PATH')
|
11
|
+
|
12
|
+
model.banner_url.should == 'http://thetvdb.com/banners/PATH'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '.fanart_url' do
|
17
|
+
it 'should return correct string' do
|
18
|
+
model.stub(:fanart_path).and_return('PATH')
|
19
|
+
|
20
|
+
model.fanart_url.should == 'http://thetvdb.com/banners/PATH'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '.poster_url' do
|
25
|
+
it 'should return correct string' do
|
26
|
+
model.stub(:poster_path).and_return('PATH')
|
27
|
+
|
28
|
+
model.poster_url.should == 'http://thetvdb.com/banners/PATH'
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'thetvdb_api/mappers/update/banner'
|
3
|
+
|
4
|
+
describe ThetvdbApi::Mappers::Update::Banner do
|
5
|
+
let(:klass) { ThetvdbApi::Mappers::Update::Banner }
|
6
|
+
let(:model) { klass.new }
|
7
|
+
|
8
|
+
describe '.url' do
|
9
|
+
it 'should return correct string' do
|
10
|
+
model.stub(:path).and_return('PATH')
|
11
|
+
|
12
|
+
model.url.should == 'http://thetvdb.com/banners/PATH'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ThetvdbApi::Search do
|
4
|
+
let(:klass) { ThetvdbApi::Response }
|
5
|
+
let(:model) { klass.new(faraday_response) }
|
6
|
+
let(:faraday_response) { double(env: true, status: true, headers: true, body: 'TEST') }
|
7
|
+
|
8
|
+
describe '.mapper' do
|
9
|
+
it 'should set mapper' do
|
10
|
+
model = klass.new(faraday_response, 'MAPPER')
|
11
|
+
model.mapper.should == 'MAPPER'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '.env' do
|
16
|
+
it 'should call env in faraday_response' do
|
17
|
+
faraday_response.should_receive(:env)
|
18
|
+
|
19
|
+
model.env
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe '.status' do
|
24
|
+
it 'should call status in faraday_response' do
|
25
|
+
faraday_response.should_receive(:status)
|
26
|
+
|
27
|
+
model.status
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '.headers' do
|
32
|
+
it 'should call headers in faraday_response' do
|
33
|
+
faraday_response.should_receive(:headers)
|
34
|
+
|
35
|
+
model.headers
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe '.body' do
|
40
|
+
it 'should map response when give mapper' do
|
41
|
+
mapper = double(parse: true)
|
42
|
+
model = klass.new(faraday_response, mapper)
|
43
|
+
mapper.should_receive(:parse)
|
44
|
+
|
45
|
+
model.body
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'should return string' do
|
49
|
+
model.body.class.should == String
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe '.inspect' do
|
54
|
+
it 'should return correct string' do
|
55
|
+
model.stub(:body).and_return('BODY')
|
56
|
+
model.stub(:mapper).and_return('MAPPER')
|
57
|
+
model.inspect.should == '<ThetvdbApi::Response body="BODY", mapper="MAPPER">'
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -9,13 +9,13 @@ describe ThetvdbApi::Search do
|
|
9
9
|
it 'should call get with specific params' do
|
10
10
|
model.should_receive(:get).with('GetSeries.php').and_return(mock_model)
|
11
11
|
|
12
|
-
model.get_series('buffy'
|
12
|
+
model.get_series('buffy')
|
13
13
|
end
|
14
14
|
|
15
15
|
it 'should call params with specific params' do
|
16
|
-
model.should_receive(:params).with(seriesname: 'buffy'
|
16
|
+
model.should_receive(:params).with(seriesname: 'buffy').and_return(mock_model)
|
17
17
|
|
18
|
-
model.get_series('buffy'
|
18
|
+
model.get_series('buffy')
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
@@ -23,13 +23,13 @@ describe ThetvdbApi::Search do
|
|
23
23
|
it 'should call get with specific params' do
|
24
24
|
model.should_receive(:get).with('GetSeriesByRemoteID.php').and_return(mock_model)
|
25
25
|
|
26
|
-
model.get_series_by_imdb_id('1234'
|
26
|
+
model.get_series_by_imdb_id('1234')
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'should call params with specific params' do
|
30
|
-
model.should_receive(:params).with(imdbid: '1234'
|
30
|
+
model.should_receive(:params).with(imdbid: '1234').and_return(mock_model)
|
31
31
|
|
32
|
-
model.get_series_by_imdb_id('1234'
|
32
|
+
model.get_series_by_imdb_id('1234')
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -37,27 +37,27 @@ describe ThetvdbApi::Search do
|
|
37
37
|
it 'should call get with specific params' do
|
38
38
|
model.should_receive(:get).with('GetSeriesByRemoteID.php').and_return(mock_model)
|
39
39
|
|
40
|
-
model.get_series_by_zap2it_id('1234'
|
40
|
+
model.get_series_by_zap2it_id('1234')
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'should call params with specific params' do
|
44
|
-
model.should_receive(:params).with(zap2it: '1234'
|
44
|
+
model.should_receive(:params).with(zap2it: '1234').and_return(mock_model)
|
45
45
|
|
46
|
-
model.get_series_by_zap2it_id('1234'
|
46
|
+
model.get_series_by_zap2it_id('1234')
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
describe '
|
50
|
+
describe '.get_episode' do
|
51
51
|
it 'should call get with specific params' do
|
52
52
|
model.should_receive(:get).with('GetEpisodeByAirDate.php').and_return(mock_model)
|
53
53
|
|
54
|
-
model.
|
54
|
+
model.get_episode('1234', '2000-01-01')
|
55
55
|
end
|
56
56
|
|
57
57
|
it 'should call params with specific params' do
|
58
|
-
model.should_receive(:params).with(seriesid: '1234', airdate: '2000-01-01'
|
58
|
+
model.should_receive(:params).with(seriesid: '1234', airdate: '2000-01-01').and_return(mock_model)
|
59
59
|
|
60
|
-
model.
|
60
|
+
model.get_episode('1234', '2000-01-01')
|
61
61
|
end
|
62
62
|
end
|
63
63
|
end
|
@@ -9,13 +9,13 @@ describe ThetvdbApi::Series do
|
|
9
9
|
it 'should call get with specific params' do
|
10
10
|
model.should_receive(:get).with('{api_key}/series/{series_id}/{language}.xml').and_return(mock_model)
|
11
11
|
|
12
|
-
model.find('1234'
|
12
|
+
model.find('1234')
|
13
13
|
end
|
14
14
|
|
15
15
|
it 'should call params with specific params' do
|
16
|
-
model.should_receive(:params).with(series_id: '1234'
|
16
|
+
model.should_receive(:params).with(series_id: '1234').and_return(mock_model)
|
17
17
|
|
18
|
-
model.find('1234'
|
18
|
+
model.find('1234')
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
@@ -23,13 +23,13 @@ describe ThetvdbApi::Series do
|
|
23
23
|
it 'should call get with specific params' do
|
24
24
|
model.should_receive(:get).with('{api_key}/series/{series_id}/all/{language}.xml').and_return(mock_model)
|
25
25
|
|
26
|
-
model.find_full('1234'
|
26
|
+
model.find_full('1234')
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'should call params with specific params' do
|
30
|
-
model.should_receive(:params).with(series_id: '1234'
|
30
|
+
model.should_receive(:params).with(series_id: '1234').and_return(mock_model)
|
31
31
|
|
32
|
-
model.find_full('1234'
|
32
|
+
model.find_full('1234')
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
@@ -13,6 +13,12 @@ describe ThetvdbApi::Update do
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
+
describe '.day_url' do
|
17
|
+
it 'should return correct string' do
|
18
|
+
model.day_url.should == "http://thetvdb.com/api/#{model.api_key}/updates/updates_day.xml"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
16
22
|
describe '.week' do
|
17
23
|
it 'should call get with specific params' do
|
18
24
|
model.should_receive(:get).with('{api_key}/updates/updates_week.xml').and_return(mock_model)
|
@@ -21,6 +27,12 @@ describe ThetvdbApi::Update do
|
|
21
27
|
end
|
22
28
|
end
|
23
29
|
|
30
|
+
describe '.week_url' do
|
31
|
+
it 'should return correct string' do
|
32
|
+
model.week_url.should == "http://thetvdb.com/api/#{model.api_key}/updates/updates_week.xml"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
24
36
|
describe '.month' do
|
25
37
|
it 'should call get with specific params' do
|
26
38
|
model.should_receive(:get).with('{api_key}/updates/updates_month.xml').and_return(mock_model)
|
@@ -29,6 +41,12 @@ describe ThetvdbApi::Update do
|
|
29
41
|
end
|
30
42
|
end
|
31
43
|
|
44
|
+
describe '.month_url' do
|
45
|
+
it 'should return correct string' do
|
46
|
+
model.month_url.should == "http://thetvdb.com/api/#{model.api_key}/updates/updates_month.xml"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
32
50
|
describe '.all' do
|
33
51
|
it 'should call get with specific params' do
|
34
52
|
model.should_receive(:get).with('{api_key}/updates/updates_all.xml').and_return(mock_model)
|
@@ -36,4 +54,10 @@ describe ThetvdbApi::Update do
|
|
36
54
|
model.all
|
37
55
|
end
|
38
56
|
end
|
57
|
+
|
58
|
+
describe '.all_url' do
|
59
|
+
it 'should return correct string' do
|
60
|
+
model.all_url.should == "http://thetvdb.com/api/#{model.api_key}/updates/updates_all.xml"
|
61
|
+
end
|
62
|
+
end
|
39
63
|
end
|