tmdby 1.0.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.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/Gemfile +3 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +31 -0
  6. data/Rakefile +2 -0
  7. data/lib/tmdby/client.rb +43 -0
  8. data/lib/tmdby/helpers/authentication.rb +17 -0
  9. data/lib/tmdby/response.rb +17 -0
  10. data/lib/tmdby/setup.rb +0 -0
  11. data/lib/tmdby/version.rb +3 -0
  12. data/lib/tmdby/wrapper.rb +62 -0
  13. data/lib/tmdby/wrappers/account.rb +103 -0
  14. data/lib/tmdby/wrappers/authentication.rb +32 -0
  15. data/lib/tmdby/wrappers/certifications.rb +15 -0
  16. data/lib/tmdby/wrappers/changes.rb +31 -0
  17. data/lib/tmdby/wrappers/collections.rb +20 -0
  18. data/lib/tmdby/wrappers/companies.rb +19 -0
  19. data/lib/tmdby/wrappers/configuration.rb +11 -0
  20. data/lib/tmdby/wrappers/credits.rb +13 -0
  21. data/lib/tmdby/wrappers/discover.rb +27 -0
  22. data/lib/tmdby/wrappers/find.rb +21 -0
  23. data/lib/tmdby/wrappers/genres.rb +27 -0
  24. data/lib/tmdby/wrappers/guest_sessions.rb +13 -0
  25. data/lib/tmdby/wrappers/jobs.rb +11 -0
  26. data/lib/tmdby/wrappers/keywords.rb +18 -0
  27. data/lib/tmdby/wrappers/lists.rb +67 -0
  28. data/lib/tmdby/wrappers/movies.rb +143 -0
  29. data/lib/tmdby/wrappers/networks.rb +11 -0
  30. data/lib/tmdby/wrappers/people.rb +71 -0
  31. data/lib/tmdby/wrappers/reviews.rb +11 -0
  32. data/lib/tmdby/wrappers/search.rb +71 -0
  33. data/lib/tmdby/wrappers/timezones.rb +11 -0
  34. data/lib/tmdby/wrappers/tv.rb +131 -0
  35. data/lib/tmdby/wrappers/tv_episodes.rb +63 -0
  36. data/lib/tmdby/wrappers/tv_seasons.rb +54 -0
  37. data/lib/tmdby.rb +47 -0
  38. data/tests/credentials.rb +7 -0
  39. data/tests/minitest/client_test.rb +60 -0
  40. data/tests/minitest/setup_test.rb +35 -0
  41. data/tests/minitest/wrapper_test.rb +64 -0
  42. data/tests/minitest/wrappers/account_test.rb +100 -0
  43. data/tests/minitest/wrappers/authentication_test.rb +50 -0
  44. data/tests/minitest/wrappers/certifications_test.rb +27 -0
  45. data/tests/minitest/wrappers/changes_test.rb +34 -0
  46. data/tests/minitest/wrappers/collections_test.rb +29 -0
  47. data/tests/minitest/wrappers/companies_test.rb +32 -0
  48. data/tests/minitest/wrappers/credits_test.rb +22 -0
  49. data/tests/minitest/wrappers/discover_test.rb +26 -0
  50. data/tests/minitest/wrappers/find_test.rb +18 -0
  51. data/tests/minitest/wrappers/genres_test.rb +35 -0
  52. data/tests/minitest/wrappers/guest_sessions_test.rb +20 -0
  53. data/tests/minitest/wrappers/jobs_test.rb +18 -0
  54. data/tests/minitest/wrappers/keywords_test.rb +27 -0
  55. data/tests/minitest/wrappers/lists_test.rb +124 -0
  56. data/tests/minitest/wrappers/minitest_wrapper.rb +40 -0
  57. data/tests/minitest/wrappers/movies_test.rb +177 -0
  58. data/tests/minitest/wrappers/networks_test.rb +18 -0
  59. data/tests/minitest/wrappers/people_test.rb +99 -0
  60. data/tests/minitest/wrappers/reviews_test.rb +18 -0
  61. data/tests/minitest/wrappers/search_test.rb +74 -0
  62. data/tests/minitest/wrappers/timezones_test.rb +21 -0
  63. data/tests/minitest/wrappers/tv_episodes_test.rb +87 -0
  64. data/tests/minitest/wrappers/tv_seasons_test.rb +76 -0
  65. data/tests/minitest/wrappers/tv_test.rb +171 -0
  66. data/tests/minitest_all.rb +13 -0
  67. data/tmdby.gemspec +24 -0
  68. metadata +152 -0
@@ -0,0 +1,76 @@
1
+ require_relative 'minitest_wrapper.rb'
2
+
3
+ class TestTvSeasons < MinitestWrapper
4
+
5
+ def setup
6
+ init_setup
7
+ @tv_seasons = Tmdby::TvSeasons
8
+ end
9
+
10
+ def test_get
11
+ multi_assert @tv_seasons.get(1396, 1),
12
+ uri: "http://api.themoviedb.org/3/tv/1396/season/1?api_key=#{API_KEY}",
13
+ http_verb: "GET",
14
+ code: "200",
15
+ id: 3572
16
+ end
17
+
18
+ def test_changes
19
+ multi_assert @tv_seasons.changes(3572),
20
+ uri: "http://api.themoviedb.org/3/tv/season/3572/changes?api_key=#{API_KEY}",
21
+ http_verb: "GET",
22
+ code: "200",
23
+ includes: "changes"
24
+ end
25
+
26
+ def test_account_states
27
+ session_id = Tmdby::Authentication.get_session_id USERNAME, PASSWORD
28
+
29
+ multi_assert @tv_seasons.account_states(1396, 1, session_id),
30
+ uri: "http://api.themoviedb.org/3/tv/1396/season/1/account_states?session_id=#{session_id}&api_key=#{API_KEY}",
31
+ http_verb: "GET",
32
+ code: "200",
33
+ id: 3572,
34
+ not_empty: "results"
35
+ end
36
+
37
+ def test_credits
38
+ multi_assert @tv_seasons.credits(1396, 1),
39
+ uri: "http://api.themoviedb.org/3/tv/1396/season/1/credits?api_key=#{API_KEY}",
40
+ http_verb: "GET",
41
+ code: "200",
42
+ id: 3572,
43
+ not_empty: "cast"
44
+ end
45
+
46
+ def test_external_ids
47
+ response = @tv_seasons.external_ids 1396, 1
48
+
49
+ multi_assert response,
50
+ uri: "http://api.themoviedb.org/3/tv/1396/season/1/external_ids?api_key=#{API_KEY}",
51
+ http_verb: "GET",
52
+ code: "200",
53
+ id: 3572
54
+
55
+ assert_equal 30272, response.body["tvdb_id"]
56
+ end
57
+
58
+ def test_images
59
+ multi_assert @tv_seasons.images(1396, 1),
60
+ uri: "http://api.themoviedb.org/3/tv/1396/season/1/images?api_key=#{API_KEY}",
61
+ http_verb: "GET",
62
+ code: "200",
63
+ id: 3572,
64
+ not_empty: "posters"
65
+ end
66
+
67
+ def test_videos
68
+ multi_assert @tv_seasons.videos(1396, 1),
69
+ uri: "http://api.themoviedb.org/3/tv/1396/season/1/videos?api_key=#{API_KEY}",
70
+ http_verb: "GET",
71
+ code: "200",
72
+ id: 3572,
73
+ includes: "results"
74
+ end
75
+
76
+ end
@@ -0,0 +1,171 @@
1
+ require_relative 'minitest_wrapper.rb'
2
+
3
+ class TestTv < MinitestWrapper
4
+
5
+ def setup
6
+ init_setup
7
+ @tv = Tmdby::Tv
8
+ end
9
+
10
+ def test_get
11
+ multi_assert @tv.get(1396),
12
+ uri: "http://api.themoviedb.org/3/tv/1396?api_key=#{API_KEY}",
13
+ http_verb: "GET",
14
+ code: "200",
15
+ id: 1396
16
+ end
17
+
18
+ def test_account_states
19
+ session_id = Tmdby::Authentication.get_session_id USERNAME, PASSWORD
20
+
21
+ multi_assert @tv.account_states(1396, session_id),
22
+ uri: "http://api.themoviedb.org/3/tv/1396/account_states?session_id=#{session_id}&api_key=#{API_KEY}",
23
+ http_verb: "GET",
24
+ code: "200",
25
+ id: 1396,
26
+ includes: "rated"
27
+ end
28
+
29
+ def test_alternative_titles
30
+ multi_assert @tv.alternative_titles(1396),
31
+ uri: "http://api.themoviedb.org/3/tv/1396/alternative_titles?api_key=#{API_KEY}",
32
+ http_verb: "GET",
33
+ code: "200",
34
+ id: 1396,
35
+ not_empty: "results"
36
+ end
37
+
38
+ def test_changes
39
+ multi_assert @tv.changes(1396),
40
+ uri: "http://api.themoviedb.org/3/tv/1396/changes?api_key=#{API_KEY}",
41
+ http_verb: "GET",
42
+ code: "200",
43
+ includes: "changes"
44
+ end
45
+
46
+ def test_content_ratings
47
+ multi_assert @tv.content_ratings(1396),
48
+ uri: "http://api.themoviedb.org/3/tv/1396/content_ratings?api_key=#{API_KEY}",
49
+ http_verb: "GET",
50
+ code: "200",
51
+ id: 1396,
52
+ not_empty: "results"
53
+ end
54
+
55
+ def test_credits
56
+ multi_assert @tv.credits(1396),
57
+ uri: "http://api.themoviedb.org/3/tv/1396/credits?api_key=#{API_KEY}",
58
+ http_verb: "GET",
59
+ code: "200",
60
+ id: 1396,
61
+ not_empty: "cast"
62
+ end
63
+
64
+ def test_external_ids
65
+ response = @tv.external_ids(1396)
66
+
67
+ multi_assert response,
68
+ uri: "http://api.themoviedb.org/3/tv/1396/external_ids?api_key=#{API_KEY}",
69
+ http_verb: "GET",
70
+ code: "200",
71
+ id: 1396
72
+
73
+ assert_equal "tt0903747", response.body["imdb_id"]
74
+ end
75
+
76
+ def test_images
77
+ multi_assert @tv.images(1396),
78
+ uri: "http://api.themoviedb.org/3/tv/1396/images?api_key=#{API_KEY}",
79
+ http_verb: "GET",
80
+ code: "200",
81
+ id: 1396,
82
+ not_empty: "backdrops"
83
+ end
84
+
85
+ def test_keywords
86
+ multi_assert @tv.keywords(1396),
87
+ uri: "http://api.themoviedb.org/3/tv/1396/keywords?api_key=#{API_KEY}",
88
+ http_verb: "GET",
89
+ code: "200",
90
+ id: 1396,
91
+ not_empty: "results"
92
+ end
93
+
94
+ def test_rating
95
+ guest_session_id = Tmdby::Authentication.guest_session_new.body["guest_session_id"]
96
+
97
+ multi_assert @tv.rating(1396, 8, nil, guest_session_id),
98
+ uri: "http://api.themoviedb.org/3/tv/1396/rating?guest_session_id=#{guest_session_id}&api_key=#{API_KEY}",
99
+ http_verb: "POST",
100
+ post_params: {"value" => 8},
101
+ code: "201",
102
+ status_code: 1
103
+ end
104
+
105
+ def test_similar
106
+ multi_assert @tv.similar(1396),
107
+ uri: "http://api.themoviedb.org/3/tv/1396/similar?api_key=#{API_KEY}",
108
+ http_verb: "GET",
109
+ code: "200",
110
+ not_empty: "results"
111
+ end
112
+
113
+ def test_translations
114
+ multi_assert @tv.translations(1396),
115
+ uri: "http://api.themoviedb.org/3/tv/1396/translations?api_key=#{API_KEY}",
116
+ http_verb: "GET",
117
+ code: "200",
118
+ id: 1396,
119
+ not_empty: "translations"
120
+ end
121
+
122
+ def test_videos
123
+ multi_assert @tv.videos(1396),
124
+ uri: "http://api.themoviedb.org/3/tv/1396/videos?api_key=#{API_KEY}",
125
+ http_verb: "GET",
126
+ code: "200",
127
+ id: 1396,
128
+ includes: "results"
129
+ end
130
+
131
+ def test_latest
132
+ multi_assert @tv.latest,
133
+ uri: "http://api.themoviedb.org/3/tv/latest?api_key=#{API_KEY}",
134
+ http_verb: "GET",
135
+ code: "200",
136
+ not_nil: "id"
137
+ end
138
+
139
+ def test_on_the_air
140
+ multi_assert @tv.on_the_air,
141
+ uri: "http://api.themoviedb.org/3/tv/on_the_air?api_key=#{API_KEY}",
142
+ http_verb: "GET",
143
+ code: "200",
144
+ includes: "results"
145
+ end
146
+
147
+ def test_airing_today
148
+ multi_assert @tv.airing_today,
149
+ uri: "http://api.themoviedb.org/3/tv/airing_today?api_key=#{API_KEY}",
150
+ http_verb: "GET",
151
+ code: "200",
152
+ includes: "results"
153
+ end
154
+
155
+ def test_top_rated
156
+ multi_assert @tv.top_rated,
157
+ uri: "http://api.themoviedb.org/3/tv/top_rated?api_key=#{API_KEY}",
158
+ http_verb: "GET",
159
+ code: "200",
160
+ includes: "results"
161
+ end
162
+
163
+ def test_popular
164
+ multi_assert @tv.popular,
165
+ uri: "http://api.themoviedb.org/3/tv/popular?api_key=#{API_KEY}",
166
+ http_verb: "GET",
167
+ code: "200",
168
+ includes: "results"
169
+ end
170
+
171
+ end
@@ -0,0 +1,13 @@
1
+ $:<< File.expand_path('../../lib', __FILE__)
2
+
3
+ require_relative 'credentials'
4
+
5
+ if not (API_KEY and USERNAME and PASSWORD and ACCOUNT_ID and API_KEY != "")
6
+ credentials_file = File.expand_path('credentials.rb', File.dirname(__FILE__))
7
+ $stderr.puts "Please configure your credentials in #{credentials_file}"
8
+ exit
9
+ end
10
+
11
+ files = Dir.glob(File.expand_path(File.dirname(__FILE__)) + '/minitest/**/*.rb')
12
+
13
+ files.each{|file| require file.gsub(/^minitest\/|.rb$/,'')}
data/tmdby.gemspec ADDED
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'tmdby/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "tmdby"
8
+ spec.version = Tmdby::VERSION
9
+ spec.authors = ["Aurélien Le Grand"]
10
+ spec.email = ["gnitg@yahoo.fr"]
11
+ spec.summary = "A Ruby wrapper for the TMDB API (http://docs.themoviedb.apiary.io/)"
12
+ spec.description = %q{Full integration of all the TMDB API}
13
+ spec.homepage = "https://github.com/a-legrand/tmdby"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.7"
22
+ spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_development_dependency "minitest"
24
+ end
metadata ADDED
@@ -0,0 +1,152 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tmdby
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Aurélien Le Grand
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-06-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Full integration of all the TMDB API
56
+ email:
57
+ - gnitg@yahoo.fr
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".gitignore"
63
+ - Gemfile
64
+ - LICENSE.txt
65
+ - README.md
66
+ - Rakefile
67
+ - lib/tmdby.rb
68
+ - lib/tmdby/client.rb
69
+ - lib/tmdby/helpers/authentication.rb
70
+ - lib/tmdby/response.rb
71
+ - lib/tmdby/setup.rb
72
+ - lib/tmdby/version.rb
73
+ - lib/tmdby/wrapper.rb
74
+ - lib/tmdby/wrappers/account.rb
75
+ - lib/tmdby/wrappers/authentication.rb
76
+ - lib/tmdby/wrappers/certifications.rb
77
+ - lib/tmdby/wrappers/changes.rb
78
+ - lib/tmdby/wrappers/collections.rb
79
+ - lib/tmdby/wrappers/companies.rb
80
+ - lib/tmdby/wrappers/configuration.rb
81
+ - lib/tmdby/wrappers/credits.rb
82
+ - lib/tmdby/wrappers/discover.rb
83
+ - lib/tmdby/wrappers/find.rb
84
+ - lib/tmdby/wrappers/genres.rb
85
+ - lib/tmdby/wrappers/guest_sessions.rb
86
+ - lib/tmdby/wrappers/jobs.rb
87
+ - lib/tmdby/wrappers/keywords.rb
88
+ - lib/tmdby/wrappers/lists.rb
89
+ - lib/tmdby/wrappers/movies.rb
90
+ - lib/tmdby/wrappers/networks.rb
91
+ - lib/tmdby/wrappers/people.rb
92
+ - lib/tmdby/wrappers/reviews.rb
93
+ - lib/tmdby/wrappers/search.rb
94
+ - lib/tmdby/wrappers/timezones.rb
95
+ - lib/tmdby/wrappers/tv.rb
96
+ - lib/tmdby/wrappers/tv_episodes.rb
97
+ - lib/tmdby/wrappers/tv_seasons.rb
98
+ - tests/credentials.rb
99
+ - tests/minitest/client_test.rb
100
+ - tests/minitest/setup_test.rb
101
+ - tests/minitest/wrapper_test.rb
102
+ - tests/minitest/wrappers/account_test.rb
103
+ - tests/minitest/wrappers/authentication_test.rb
104
+ - tests/minitest/wrappers/certifications_test.rb
105
+ - tests/minitest/wrappers/changes_test.rb
106
+ - tests/minitest/wrappers/collections_test.rb
107
+ - tests/minitest/wrappers/companies_test.rb
108
+ - tests/minitest/wrappers/credits_test.rb
109
+ - tests/minitest/wrappers/discover_test.rb
110
+ - tests/minitest/wrappers/find_test.rb
111
+ - tests/minitest/wrappers/genres_test.rb
112
+ - tests/minitest/wrappers/guest_sessions_test.rb
113
+ - tests/minitest/wrappers/jobs_test.rb
114
+ - tests/minitest/wrappers/keywords_test.rb
115
+ - tests/minitest/wrappers/lists_test.rb
116
+ - tests/minitest/wrappers/minitest_wrapper.rb
117
+ - tests/minitest/wrappers/movies_test.rb
118
+ - tests/minitest/wrappers/networks_test.rb
119
+ - tests/minitest/wrappers/people_test.rb
120
+ - tests/minitest/wrappers/reviews_test.rb
121
+ - tests/minitest/wrappers/search_test.rb
122
+ - tests/minitest/wrappers/timezones_test.rb
123
+ - tests/minitest/wrappers/tv_episodes_test.rb
124
+ - tests/minitest/wrappers/tv_seasons_test.rb
125
+ - tests/minitest/wrappers/tv_test.rb
126
+ - tests/minitest_all.rb
127
+ - tmdby.gemspec
128
+ homepage: https://github.com/a-legrand/tmdby
129
+ licenses:
130
+ - MIT
131
+ metadata: {}
132
+ post_install_message:
133
+ rdoc_options: []
134
+ require_paths:
135
+ - lib
136
+ required_ruby_version: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ required_rubygems_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ requirements: []
147
+ rubyforge_project:
148
+ rubygems_version: 2.4.5
149
+ signing_key:
150
+ specification_version: 4
151
+ summary: A Ruby wrapper for the TMDB API (http://docs.themoviedb.apiary.io/)
152
+ test_files: []