trakt_api 0.0.2
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 +7 -0
- data/.gitignore +19 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +252 -0
- data/Rakefile +1 -0
- data/lib/generators/templates/trakt_api.rb +5 -0
- data/lib/generators/trakt_api/install_generator.rb +12 -0
- data/lib/trakt_api.rb +22 -0
- data/lib/trakt_api/account.rb +16 -0
- data/lib/trakt_api/activity.rb +109 -0
- data/lib/trakt_api/base.rb +93 -0
- data/lib/trakt_api/calendar.rb +17 -0
- data/lib/trakt_api/client.rb +74 -0
- data/lib/trakt_api/comment.rb +16 -0
- data/lib/trakt_api/configuration.rb +7 -0
- data/lib/trakt_api/genres.rb +11 -0
- data/lib/trakt_api/lists.rb +26 -0
- data/lib/trakt_api/movie.rb +86 -0
- data/lib/trakt_api/movies.rb +11 -0
- data/lib/trakt_api/network.rb +26 -0
- data/lib/trakt_api/rate.rb +31 -0
- data/lib/trakt_api/recommendations.rb +21 -0
- data/lib/trakt_api/search.rb +26 -0
- data/lib/trakt_api/server.rb +6 -0
- data/lib/trakt_api/show.rb +152 -0
- data/lib/trakt_api/shows.rb +11 -0
- data/lib/trakt_api/user.rb +124 -0
- data/lib/trakt_api/version.rb +3 -0
- data/spec/integration_spec_helper.rb +3 -0
- data/spec/integrations/account_spec.rb +19 -0
- data/spec/integrations/calendar_spec.rb +31 -0
- data/spec/integrations/client_spec.rb +173 -0
- data/spec/integrations/genres_spec.rb +19 -0
- data/spec/integrations/movies_spec.rb +25 -0
- data/spec/integrations/network_spec.rb +37 -0
- data/spec/integrations/search_spec.rb +37 -0
- data/spec/integrations/server_spec.rb +13 -0
- data/spec/integrations/shows_spec.rb +25 -0
- data/spec/integrations/support/trakt_api.rb.example +5 -0
- data/spec/spec_helper.rb +43 -0
- data/spec/trakt_api/account_spec.rb +56 -0
- data/spec/trakt_api/activity_spec.rb +297 -0
- data/spec/trakt_api/base_spec.rb +147 -0
- data/spec/trakt_api/calendar_spec.rb +48 -0
- data/spec/trakt_api/client_spec.rb +101 -0
- data/spec/trakt_api/comment_spec.rb +69 -0
- data/spec/trakt_api/genres_spec.rb +24 -0
- data/spec/trakt_api/lists_spec.rb +111 -0
- data/spec/trakt_api/movie_spec.rb +333 -0
- data/spec/trakt_api/movies_spec.rb +38 -0
- data/spec/trakt_api/network_spec.rb +105 -0
- data/spec/trakt_api/rate_spec.rb +132 -0
- data/spec/trakt_api/recommendations_spec.rb +90 -0
- data/spec/trakt_api/search_spec.rb +81 -0
- data/spec/trakt_api/server_spec.rb +15 -0
- data/spec/trakt_api/show_spec.rb +588 -0
- data/spec/trakt_api/shows_spec.rb +38 -0
- data/spec/trakt_api/user_spec.rb +561 -0
- data/trakt_api.gemspec +29 -0
- metadata +232 -0
@@ -0,0 +1,147 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
class ExampleClass < TraktApi::Base
|
4
|
+
end
|
5
|
+
|
6
|
+
describe TraktApi::Base do
|
7
|
+
let(:klass) { ExampleClass }
|
8
|
+
let(:model) { klass.new(TraktApi::Client.new) }
|
9
|
+
|
10
|
+
describe '.auth' do
|
11
|
+
it 'should set auth' do
|
12
|
+
model.auth
|
13
|
+
|
14
|
+
model.instance_variable_get('@auth').should == true
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '.optionl_auth' do
|
19
|
+
it 'should call auth' do
|
20
|
+
model.should_receive(:auth)
|
21
|
+
|
22
|
+
model.optional_auth(auth: true)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe '.store_uri' do
|
27
|
+
it 'should set uri' do
|
28
|
+
model.stub(:api_key).and_return('API_KEY')
|
29
|
+
model.store_uri('http://example.com')
|
30
|
+
|
31
|
+
model.instance_variable_get('@uri').should == 'http://example.com.json/API_KEY'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe '.get' do
|
36
|
+
it 'should call store_uri' do
|
37
|
+
model.should_receive(:store_uri)
|
38
|
+
|
39
|
+
model.get('http://example.com')
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should set @method to get' do
|
43
|
+
model.get('http://example.com')
|
44
|
+
|
45
|
+
model.instance_variable_get('@method').should == :get
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'should return self' do
|
49
|
+
model.get('http://example.com').should == model
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe '.post' do
|
54
|
+
it 'should call store_uri' do
|
55
|
+
model.should_receive(:store_uri)
|
56
|
+
|
57
|
+
model.post('http://example.com')
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should set @method to post' do
|
61
|
+
model.post('http://example.com')
|
62
|
+
|
63
|
+
model.instance_variable_get('@method').should == :post
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'should return self' do
|
67
|
+
model.post('http://example.com').should == model
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe '.params' do
|
72
|
+
it 'should set @params' do
|
73
|
+
model.params(sample: true)
|
74
|
+
|
75
|
+
model.instance_variable_get('@params').should == { sample: true }
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
describe '.restful_params' do
|
80
|
+
it 'should return correct uri' do
|
81
|
+
model.instance_variable_set('@uri', 'URI')
|
82
|
+
|
83
|
+
model.restful_params({}, [])
|
84
|
+
|
85
|
+
model.instance_variable_get('@uri').should == 'URI/'
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
describe '.response' do
|
90
|
+
it 'should call get klass method' do
|
91
|
+
model.instance_variable_set('@method', :get)
|
92
|
+
klass.should_receive(:get)
|
93
|
+
|
94
|
+
model.response
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
describe '.request_options' do
|
99
|
+
it 'should return correct keys' do
|
100
|
+
model.request_options.keys.sort.should == [:body].sort
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe '.auth_hash' do
|
105
|
+
it 'should return correct hash' do
|
106
|
+
model = klass.new(TraktApi::Client.new(username: 'tester', password: 'qwerty'))
|
107
|
+
|
108
|
+
model.auth_hash.should == { basic_auth: { username: model.username, password: model.password.to_sha1 } }
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
describe '.series_uri' do
|
113
|
+
it 'should use default api_key' do
|
114
|
+
klass.new(TraktApi::Client.new(api_key: 'API_KEY')).series_uri('1234').should == 'API_KEY/series/1234/'
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
describe '.api_key' do
|
119
|
+
it 'should use default api_key' do
|
120
|
+
klass.new(TraktApi::Client.new).api_key.should == TraktApi::Configuration.api_key
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'should set api_key' do
|
124
|
+
klass.new(TraktApi::Client.new(api_key: 'API_KEY')).api_key.should == 'API_KEY'
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
describe '.username' do
|
129
|
+
it 'should use default username' do
|
130
|
+
klass.new(TraktApi::Client.new).username.should == TraktApi::Configuration.username
|
131
|
+
end
|
132
|
+
|
133
|
+
it 'should set username' do
|
134
|
+
klass.new(TraktApi::Client.new(username: 'USERNAME')).username.should == 'USERNAME'
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
describe '.password' do
|
139
|
+
it 'should use default password' do
|
140
|
+
klass.new(TraktApi::Client.new).password.should == TraktApi::Configuration.password
|
141
|
+
end
|
142
|
+
|
143
|
+
it 'should set username' do
|
144
|
+
klass.new(TraktApi::Client.new(password: 'PASSWORD')).password.should == 'PASSWORD'
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TraktApi::Calendar do
|
4
|
+
let(:model) { TraktApi::Calendar.new(TraktApi::Client.new) }
|
5
|
+
let(:mock_model) { SampleModel.new }
|
6
|
+
|
7
|
+
describe '.settings' do
|
8
|
+
it 'should call optional_auth' do
|
9
|
+
model.should_receive(:optional_auth).and_return(mock_model)
|
10
|
+
|
11
|
+
model.premieres(date: '20130101')
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should call get with specific params' do
|
15
|
+
model.instance_variable_set("@method", :get)
|
16
|
+
model.should_receive(:get).with('calendar/premieres').and_return(mock_model)
|
17
|
+
|
18
|
+
model.premieres(date: '20130101')
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should call restful_params' do
|
22
|
+
model.should_receive(:restful_params).and_return(mock_model)
|
23
|
+
|
24
|
+
model.premieres(date: '20130101')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '.shows' do
|
29
|
+
it 'should call optional_auth' do
|
30
|
+
model.should_receive(:optional_auth).and_return(mock_model)
|
31
|
+
|
32
|
+
model.shows(date: '20130101')
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should call get with specific params' do
|
36
|
+
model.instance_variable_set("@method", :get)
|
37
|
+
model.should_receive(:get).with('calendar/shows').and_return(mock_model)
|
38
|
+
|
39
|
+
model.shows(date: '20130101')
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should call restful_params' do
|
43
|
+
model.should_receive(:restful_params).and_return(mock_model)
|
44
|
+
|
45
|
+
model.shows(date: '20130101')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TraktApi::Client do
|
4
|
+
let(:model) { TraktApi::Client.new }
|
5
|
+
|
6
|
+
describe '.account' do
|
7
|
+
it 'should return account class' do
|
8
|
+
model.account.class.should == TraktApi::Account
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '.activity' do
|
13
|
+
it 'should return account class' do
|
14
|
+
model.activity.class.should == TraktApi::Activity
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '.calendar' do
|
19
|
+
it 'should return calendar class' do
|
20
|
+
model.calendar.class.should == TraktApi::Calendar
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '.comment' do
|
25
|
+
it 'should return comment class' do
|
26
|
+
model.comment.class.should == TraktApi::Comment
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe '.genres' do
|
31
|
+
it 'should return genres class' do
|
32
|
+
model.genres.class.should == TraktApi::Genres
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe '.lists' do
|
37
|
+
it 'should return lists class' do
|
38
|
+
model.lists.class.should == TraktApi::Lists
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe '.movie' do
|
43
|
+
it 'should return movie class' do
|
44
|
+
model.movie.class.should == TraktApi::Movie
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe '.movies' do
|
49
|
+
it 'should return movies class' do
|
50
|
+
model.movies.class.should == TraktApi::Movies
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe '.network' do
|
55
|
+
it 'should return network class' do
|
56
|
+
model.network.class.should == TraktApi::Network
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe '.rate' do
|
61
|
+
it 'should return rate class' do
|
62
|
+
model.rate.class.should == TraktApi::Rate
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe '.recommendations' do
|
67
|
+
it 'should return movies class' do
|
68
|
+
model.recommendations.class.should == TraktApi::Recommendations
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe '.search' do
|
73
|
+
it 'should return search class' do
|
74
|
+
model.search.class.should == TraktApi::Search
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe '.server' do
|
79
|
+
it 'should return server class' do
|
80
|
+
model.server.class.should == TraktApi::Server
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
describe '.show' do
|
85
|
+
it 'should return show class' do
|
86
|
+
model.show.class.should == TraktApi::Show
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe '.shows' do
|
91
|
+
it 'should return shows class' do
|
92
|
+
model.shows.class.should == TraktApi::Shows
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
describe '.user' do
|
97
|
+
it 'should return user class' do
|
98
|
+
model.user.class.should == TraktApi::User
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TraktApi::Comment do
|
4
|
+
let(:model) { TraktApi::Comment.new(TraktApi::Client.new) }
|
5
|
+
let(:mock_model) { SampleModel.new }
|
6
|
+
|
7
|
+
describe '.episode' do
|
8
|
+
it 'should call auth' do
|
9
|
+
model.should_receive(:auth).and_return(mock_model)
|
10
|
+
|
11
|
+
model.episode(sample: true)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should call post with specific params' do
|
15
|
+
model.instance_variable_set("@method", :post)
|
16
|
+
model.should_receive(:post).with('comment/episode').and_return(mock_model)
|
17
|
+
|
18
|
+
model.episode(sample: true)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should call params' do
|
22
|
+
model.should_receive(:params).and_return(mock_model)
|
23
|
+
|
24
|
+
model.episode(sample: true)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '.movie' do
|
29
|
+
it 'should call auth' do
|
30
|
+
model.should_receive(:auth).and_return(mock_model)
|
31
|
+
|
32
|
+
model.movie(sample: true)
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should call postt with specific params' do
|
36
|
+
model.instance_variable_set("@method", :post)
|
37
|
+
model.should_receive(:post).with('comment/movie').and_return(mock_model)
|
38
|
+
|
39
|
+
model.movie(sample: true)
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should call params' do
|
43
|
+
model.should_receive(:params).and_return(mock_model)
|
44
|
+
|
45
|
+
model.movie(sample: true)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe '.show' do
|
50
|
+
it 'should call auth' do
|
51
|
+
model.should_receive(:auth).and_return(mock_model)
|
52
|
+
|
53
|
+
model.show(sample: true)
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'should call post with specific params' do
|
57
|
+
model.instance_variable_set("@method", :post)
|
58
|
+
model.should_receive(:post).with('comment/show').and_return(mock_model)
|
59
|
+
|
60
|
+
model.show(sample: true)
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'should call params' do
|
64
|
+
model.should_receive(:params).and_return(mock_model)
|
65
|
+
|
66
|
+
model.show(sample: true)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TraktApi::Genres do
|
4
|
+
let(:model) { TraktApi::Genres.new(TraktApi::Client.new) }
|
5
|
+
let(:mock_model) { SampleModel.new }
|
6
|
+
|
7
|
+
describe '.movies' do
|
8
|
+
it 'should call get with specific params' do
|
9
|
+
model.instance_variable_set("@method", :get)
|
10
|
+
model.should_receive(:get).with('genres/movies').and_return(mock_model)
|
11
|
+
|
12
|
+
model.movies
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '.shows' do
|
17
|
+
it 'should call get with specific params' do
|
18
|
+
model.instance_variable_set("@method", :get)
|
19
|
+
model.should_receive(:get).with('genres/shows').and_return(mock_model)
|
20
|
+
|
21
|
+
model.shows
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TraktApi::Lists do
|
4
|
+
let(:model) { TraktApi::Lists.new(TraktApi::Client.new) }
|
5
|
+
let(:mock_model) { SampleModel.new }
|
6
|
+
|
7
|
+
describe '.add' do
|
8
|
+
it 'should call auth' do
|
9
|
+
model.should_receive(:auth).and_return(mock_model)
|
10
|
+
|
11
|
+
model.add(name: 'test', privacy: 'private', sample: true)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should call post with specific params' do
|
15
|
+
model.instance_variable_set("@method", :post)
|
16
|
+
model.should_receive(:post).with('lists/add').and_return(mock_model)
|
17
|
+
|
18
|
+
model.add(name: 'test', privacy: 'private', sample: true)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should call params' do
|
22
|
+
model.should_receive(:params).and_return(mock_model)
|
23
|
+
|
24
|
+
model.add(name: 'test', privacy: 'private', sample: true)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '.delete' do
|
29
|
+
it 'should call auth' do
|
30
|
+
model.should_receive(:auth).and_return(mock_model)
|
31
|
+
|
32
|
+
model.delete(slug: 'test')
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should call post with specific params' do
|
36
|
+
model.instance_variable_set("@method", :post)
|
37
|
+
model.should_receive(:post).with('lists/delete').and_return(mock_model)
|
38
|
+
|
39
|
+
model.delete(slug: 'test')
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should call params' do
|
43
|
+
model.should_receive(:params).and_return(mock_model)
|
44
|
+
|
45
|
+
model.delete(slug: 'test')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe '.items_add' do
|
50
|
+
it 'should call auth' do
|
51
|
+
model.should_receive(:auth).and_return(mock_model)
|
52
|
+
|
53
|
+
model.items_add(slug: 'test', items: [])
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'should call post with specific params' do
|
57
|
+
model.instance_variable_set("@method", :post)
|
58
|
+
model.should_receive(:post).with('lists/items/add').and_return(mock_model)
|
59
|
+
|
60
|
+
model.items_add(slug: 'test', items: [])
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'should call params' do
|
64
|
+
model.should_receive(:params).and_return(mock_model)
|
65
|
+
|
66
|
+
model.items_add(slug: 'test', items: [])
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe '.items_delete' do
|
71
|
+
it 'should call auth' do
|
72
|
+
model.should_receive(:auth).and_return(mock_model)
|
73
|
+
|
74
|
+
model.items_delete(slug: 'test', items: [])
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'should call post with specific params' do
|
78
|
+
model.instance_variable_set("@method", :post)
|
79
|
+
model.should_receive(:post).with('lists/items/delete').and_return(mock_model)
|
80
|
+
|
81
|
+
model.items_delete(slug: 'test', items: [])
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'should call params' do
|
85
|
+
model.should_receive(:params).and_return(mock_model)
|
86
|
+
|
87
|
+
model.items_delete(slug: 'test', items: [])
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
describe '.update' do
|
92
|
+
it 'should call auth' do
|
93
|
+
model.should_receive(:auth).and_return(mock_model)
|
94
|
+
|
95
|
+
model.update(slug: 'test', sample: 1)
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should call post with specific params' do
|
99
|
+
model.instance_variable_set("@method", :post)
|
100
|
+
model.should_receive(:post).with('lists/update').and_return(mock_model)
|
101
|
+
|
102
|
+
model.update(slug: 'test', sample: 1)
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'should call params' do
|
106
|
+
model.should_receive(:params).and_return(mock_model)
|
107
|
+
|
108
|
+
model.update(slug: 'test', sample: 1)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|