tmdb_rexx 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +12 -0
- data/CODE_OF_CONDUCT.md +13 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +64 -0
- data/Rakefile +11 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/lib/tmdb_rexx/client/certification.rb +24 -0
- data/lib/tmdb_rexx/client/changes.rb +32 -0
- data/lib/tmdb_rexx/client/collection.rb +40 -0
- data/lib/tmdb_rexx/client/company.rb +37 -0
- data/lib/tmdb_rexx/client/credit.rb +28 -0
- data/lib/tmdb_rexx/client/discover.rb +23 -0
- data/lib/tmdb_rexx/client/find.rb +36 -0
- data/lib/tmdb_rexx/client/genre.rb +39 -0
- data/lib/tmdb_rexx/client/job.rb +19 -0
- data/lib/tmdb_rexx/client/keyword.rb +35 -0
- data/lib/tmdb_rexx/client/movie.rb +271 -0
- data/lib/tmdb_rexx/client/network.rb +23 -0
- data/lib/tmdb_rexx/client/review.rb +21 -0
- data/lib/tmdb_rexx/client/timezone.rb +21 -0
- data/lib/tmdb_rexx/client.rb +55 -0
- data/lib/tmdb_rexx/configuration.rb +38 -0
- data/lib/tmdb_rexx/connection.rb +15 -0
- data/lib/tmdb_rexx/default.rb +53 -0
- data/lib/tmdb_rexx/error.rb +6 -0
- data/lib/tmdb_rexx/request.rb +39 -0
- data/lib/tmdb_rexx/version.rb +3 -0
- data/lib/tmdb_rexx.rb +15 -0
- data/tmdb_rexx.gemspec +34 -0
- metadata +247 -0
@@ -0,0 +1,271 @@
|
|
1
|
+
module TmdbRexx
|
2
|
+
class Client
|
3
|
+
module Movie
|
4
|
+
RESOURCE = "movie".freeze
|
5
|
+
|
6
|
+
# Get the basic movie information for a specific movie id.
|
7
|
+
#
|
8
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieid
|
9
|
+
#
|
10
|
+
# @param [String] id the movie id
|
11
|
+
#
|
12
|
+
# @return [Hashie::Mash] build response
|
13
|
+
#
|
14
|
+
# @example Get the movie api response
|
15
|
+
# TmdbRexx::Client.movie("movie-id")
|
16
|
+
def movie(movie_id, options = {})
|
17
|
+
get([RESOURCE, movie_id].join("/"), options)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Get the alternative titles for a specific movie id.
|
21
|
+
#
|
22
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieidalternativetitles
|
23
|
+
#
|
24
|
+
# @param [String] id the movie id
|
25
|
+
#
|
26
|
+
# @return [Hashie::Mash] build response
|
27
|
+
#
|
28
|
+
# @example Get the movie alternative titles api response
|
29
|
+
# TmdbRexx::Client.movie_alternative_titles("movie-id")
|
30
|
+
def movie_alternative_titles(movie_id, options = {})
|
31
|
+
get([RESOURCE, movie_id, "alternative_titles"].join("/"), options)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Get the cast and crew information for a specific movie id.
|
35
|
+
#
|
36
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/moviecredits
|
37
|
+
#
|
38
|
+
# @param [String] id the movie id
|
39
|
+
#
|
40
|
+
# @return [Hashie::Mash] build response
|
41
|
+
#
|
42
|
+
# @example Get the movie credits api response
|
43
|
+
# TmdbRexx::Client.movie_credits("movie-id")
|
44
|
+
def movie_credits(movie_id, options = {})
|
45
|
+
get([RESOURCE, movie_id, "credits"].join("/"), options)
|
46
|
+
end
|
47
|
+
|
48
|
+
# Get the images (posters and backdrops) for a specific movie id.
|
49
|
+
#
|
50
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieimages
|
51
|
+
#
|
52
|
+
# @param [String] id the movie id
|
53
|
+
#
|
54
|
+
# @return [Hashie::Mash] build response
|
55
|
+
#
|
56
|
+
# @example Get the movie images api response
|
57
|
+
# TmdbRexx::Client.movie_images("movie-id")
|
58
|
+
def movie_images(movie_id, options = {})
|
59
|
+
get([RESOURCE, movie_id, "images"].join("/"), options)
|
60
|
+
end
|
61
|
+
|
62
|
+
# Get the backdrops for a specific movie id.
|
63
|
+
# This is a convenience method base on .movie_images
|
64
|
+
#
|
65
|
+
# @param [String] id the movie id
|
66
|
+
#
|
67
|
+
# @return [Hashie::Mash] build response
|
68
|
+
#
|
69
|
+
# @example Get the movie backdrops
|
70
|
+
# TmdbRexx::Client.movie_backdrops("movie-id")
|
71
|
+
def movie_backdrops(movie_id, options = {})
|
72
|
+
get([RESOURCE, movie_id, "images"].join("/"), options).backdrops
|
73
|
+
end
|
74
|
+
|
75
|
+
# Get the posters for a specific movie id.
|
76
|
+
# This is a convenience method base on .movie_images
|
77
|
+
#
|
78
|
+
# @param [String] id the movie id
|
79
|
+
#
|
80
|
+
# @return [Hashie::Mash] build response
|
81
|
+
#
|
82
|
+
# @example Get the movie posters
|
83
|
+
# TmdbRexx::Client.movie_posters("movie-id")
|
84
|
+
def movie_posters(movie_id, options = {})
|
85
|
+
get([RESOURCE, movie_id, "images"].join("/"), options).posters
|
86
|
+
end
|
87
|
+
|
88
|
+
# Get the plot keywords for a specific movie id.
|
89
|
+
#
|
90
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieidkeywords
|
91
|
+
#
|
92
|
+
# @param [String] id the movie id
|
93
|
+
#
|
94
|
+
# @return [Hashie::Mash] build response
|
95
|
+
#
|
96
|
+
# @example Get the movie keywords
|
97
|
+
# TmdbRexx::Client.movie_keywords("movie-id")
|
98
|
+
def movie_keywords(movie_id, options = {})
|
99
|
+
get([RESOURCE, movie_id, "keywords"].join("/"), options)
|
100
|
+
end
|
101
|
+
|
102
|
+
# Get the release date and certification information by country for a specific movie id.
|
103
|
+
#
|
104
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieidreleases
|
105
|
+
#
|
106
|
+
# @param [String] id the movie id
|
107
|
+
#
|
108
|
+
# @return [Hashie::Mash] build response
|
109
|
+
#
|
110
|
+
# @example Get the movie releases
|
111
|
+
# TmdbRexx::Client.movie_releases("movie-id")
|
112
|
+
def movie_releases(movie_id, options = {})
|
113
|
+
get([RESOURCE, movie_id, "releases"].join("/"), options)
|
114
|
+
end
|
115
|
+
|
116
|
+
# Get the videos (trailers, teasers, clips, etc...) for a specific movie id.
|
117
|
+
#
|
118
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieidvideos
|
119
|
+
#
|
120
|
+
# @param [String] id the movie id
|
121
|
+
#
|
122
|
+
# @return [Hashie::Mash] build response
|
123
|
+
#
|
124
|
+
# @example Get the movie videos
|
125
|
+
# TmdbRexx::Client.movie_videos("movie-id")
|
126
|
+
def movie_videos(movie_id, options = {})
|
127
|
+
get([RESOURCE, movie_id, "videos"].join("/"), options)
|
128
|
+
end
|
129
|
+
|
130
|
+
# Get the translations for a specific movie id.
|
131
|
+
#
|
132
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieidtranslations
|
133
|
+
#
|
134
|
+
# @param [String] id the movie id
|
135
|
+
#
|
136
|
+
# @return [Hashie::Mash] build response
|
137
|
+
#
|
138
|
+
# @example Get the movie translations
|
139
|
+
# TmdbRexx::Client.movie_translations("movie-id")
|
140
|
+
def movie_translations(movie_id, options = {})
|
141
|
+
get([RESOURCE, movie_id, "translations"].join("/"), options)
|
142
|
+
end
|
143
|
+
|
144
|
+
# Get the similar movies for a specific movie id.
|
145
|
+
#
|
146
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieidsimilar
|
147
|
+
#
|
148
|
+
# @param [String] id the movie id
|
149
|
+
#
|
150
|
+
# @return [Hashie::Mash] build response
|
151
|
+
#
|
152
|
+
# @example Get the similar movies
|
153
|
+
# TmdbRexx::Client.similar_movies("movie-id")
|
154
|
+
def similar_movies(movie_id, options = {})
|
155
|
+
get([RESOURCE, movie_id, "similar"].join("/"), options)
|
156
|
+
end
|
157
|
+
|
158
|
+
# Get the reviews for a particular movie id.
|
159
|
+
#
|
160
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieidreviews
|
161
|
+
#
|
162
|
+
# @param [String] id the movie id
|
163
|
+
#
|
164
|
+
# @return [Hashie::Mash] build response
|
165
|
+
#
|
166
|
+
# @example Get the movie reviews
|
167
|
+
# TmdbRexx::Client.movie_reviews("movie-id")
|
168
|
+
def movie_reviews(movie_id, options = {})
|
169
|
+
get([RESOURCE, movie_id, "reviews"].join("/"), options)
|
170
|
+
end
|
171
|
+
|
172
|
+
# Get the lists that the movie belongs to.
|
173
|
+
#
|
174
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieidlists
|
175
|
+
#
|
176
|
+
# @param [String] id the movie id
|
177
|
+
#
|
178
|
+
# @return [Hashie::Mash] build response
|
179
|
+
#
|
180
|
+
# @example Get the movie lists
|
181
|
+
# TmdbRexx::Client.movie_lists("movie-id")
|
182
|
+
def movie_lists(movie_id, options = {})
|
183
|
+
get([RESOURCE, movie_id, "lists"].join("/"), options)
|
184
|
+
end
|
185
|
+
|
186
|
+
# Get the changes made to the movie.
|
187
|
+
#
|
188
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieidchanges
|
189
|
+
#
|
190
|
+
# @param [String] id the movie id
|
191
|
+
#
|
192
|
+
# @return [Hashie::Mash] build response
|
193
|
+
#
|
194
|
+
# @example Get the movie changes
|
195
|
+
# TmdbRexx::Client.movie_changes("movie-id")
|
196
|
+
def movie_changes(movie_id, options = {})
|
197
|
+
get([RESOURCE, movie_id, "changes"].join("/"), options)
|
198
|
+
end
|
199
|
+
|
200
|
+
# Get the latest movie id.
|
201
|
+
#
|
202
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieidlatest
|
203
|
+
#
|
204
|
+
# @param [String] id the movie id
|
205
|
+
#
|
206
|
+
# @return [Hashie::Mash] build response
|
207
|
+
#
|
208
|
+
# @example Get the movie latest
|
209
|
+
# TmdbRexx::Client.latest_movie("movie-id")
|
210
|
+
def latest_movie(movie_id, options = {})
|
211
|
+
get([RESOURCE, "latest"].join("/"), options)
|
212
|
+
end
|
213
|
+
|
214
|
+
# Get the list of movies playing that have been, or are being released this week. This list refreshes every day.
|
215
|
+
#
|
216
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieidnow_playing
|
217
|
+
#
|
218
|
+
# @param [String] id the movie id
|
219
|
+
#
|
220
|
+
# @return [Hashie::Mash] build response
|
221
|
+
#
|
222
|
+
# @example Get the movies now_playing
|
223
|
+
# TmdbRexx::Client.now_playing("movie-id")
|
224
|
+
def now_playing(movie_id, options = {})
|
225
|
+
get([RESOURCE, "now_playing"].join("/"), options)
|
226
|
+
end
|
227
|
+
|
228
|
+
# Get the list of popular movies on The Movie Database. This list refreshes every day.
|
229
|
+
#
|
230
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieidpopular
|
231
|
+
#
|
232
|
+
# @param [String] id the movie id
|
233
|
+
#
|
234
|
+
# @return [Hashie::Mash] build response
|
235
|
+
#
|
236
|
+
# @example Get the movies popular_movies
|
237
|
+
# TmdbRexx::Client.popular_movies("movie-id")
|
238
|
+
def popular_movies(movie_id, options = {})
|
239
|
+
get([RESOURCE, "popular"].join("/"), options)
|
240
|
+
end
|
241
|
+
|
242
|
+
# Get the list of top_rated movies on The Movie Database. This list refreshes every day.
|
243
|
+
#
|
244
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieidtoprated
|
245
|
+
#
|
246
|
+
# @param [String] id the movie id
|
247
|
+
#
|
248
|
+
# @return [Hashie::Mash] build response
|
249
|
+
#
|
250
|
+
# @example Get the movies top rated
|
251
|
+
# TmdbRexx::Client.top_rated_movies("movie-id")
|
252
|
+
def top_rated_movies(movie_id, options = {})
|
253
|
+
get([RESOURCE, "top_rated"].join("/"), options)
|
254
|
+
end
|
255
|
+
|
256
|
+
# Get the list of movies playing that have been, or are being released this week. This list refreshes every day.
|
257
|
+
#
|
258
|
+
# @see http://docs.themoviedb.apiary.io/#reference/movies/movieidupcoming
|
259
|
+
#
|
260
|
+
# @param [String] id the movie id
|
261
|
+
#
|
262
|
+
# @return [Hashie::Mash] build response
|
263
|
+
#
|
264
|
+
# @example Get the movies upcoming
|
265
|
+
# TmdbRexx::Client.upcoming("movie-id")
|
266
|
+
def upcoming(movie_id, options = {})
|
267
|
+
get([RESOURCE, "upcoming"].join("/"), options)
|
268
|
+
end
|
269
|
+
end
|
270
|
+
end
|
271
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module TmdbRexx
|
2
|
+
class Client
|
3
|
+
module Network
|
4
|
+
RESOURCE = "network".freeze
|
5
|
+
|
6
|
+
# This method is used to retrieve the basic information about a TV
|
7
|
+
# network. You can use this ID to search for TV shows with the discover.
|
8
|
+
# At this time we don't have much but this will be fleshed out over time.
|
9
|
+
#
|
10
|
+
# @see http://docs.themoviedb.apiary.io/#reference/networks
|
11
|
+
#
|
12
|
+
# @param [String] id the network id
|
13
|
+
#
|
14
|
+
# @return [Hashie::Mash] build response
|
15
|
+
#
|
16
|
+
# @example Get the network api response
|
17
|
+
# TmdbRexx::Client.network("network-id")
|
18
|
+
def network(network_id, options = {})
|
19
|
+
get([RESOURCE, network_id].join("/"), options)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module TmdbRexx
|
2
|
+
class Client
|
3
|
+
module Review
|
4
|
+
RESOURCE = "review".freeze
|
5
|
+
|
6
|
+
# Get the full details of a review by ID.
|
7
|
+
#
|
8
|
+
# @see http://docs.themoviedb.apiary.io/#reference/reviewid
|
9
|
+
#
|
10
|
+
# @param [String] id the review id
|
11
|
+
#
|
12
|
+
# @return [Hashie::Mash] build response
|
13
|
+
#
|
14
|
+
# @example Get the review api response
|
15
|
+
# TmdbRexx::Client.review("review-id")
|
16
|
+
def review(review_id, options = {})
|
17
|
+
get([RESOURCE, review_id].join("/"), options)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module TmdbRexx
|
2
|
+
class Client
|
3
|
+
module Timezone
|
4
|
+
RESOURCE = "timezones".freeze
|
5
|
+
|
6
|
+
# Get the list of supported timezones for the API
|
7
|
+
# methods that support them.
|
8
|
+
#
|
9
|
+
# @see
|
10
|
+
# http://docs.themoviedb.apiary.io/#reference/movies/timezones
|
11
|
+
#
|
12
|
+
# @return [Hashie::Mash] response
|
13
|
+
#
|
14
|
+
# @example Get the timezones api response
|
15
|
+
# client.timezones
|
16
|
+
def timezones(options = {})
|
17
|
+
get([RESOURCE, "list"].join("/"), options)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# Core
|
2
|
+
require 'tmdb_rexx/error'
|
3
|
+
require 'tmdb_rexx/connection'
|
4
|
+
require 'tmdb_rexx/default'
|
5
|
+
require 'tmdb_rexx/request'
|
6
|
+
# Client
|
7
|
+
require 'tmdb_rexx/client/movie'
|
8
|
+
require 'tmdb_rexx/client/certification'
|
9
|
+
require 'tmdb_rexx/client/changes'
|
10
|
+
require 'tmdb_rexx/client/collection'
|
11
|
+
require 'tmdb_rexx/client/company'
|
12
|
+
require 'tmdb_rexx/client/credit'
|
13
|
+
require 'tmdb_rexx/client/discover'
|
14
|
+
require 'tmdb_rexx/client/find'
|
15
|
+
require 'tmdb_rexx/client/genre'
|
16
|
+
require 'tmdb_rexx/client/job'
|
17
|
+
require 'tmdb_rexx/client/keyword'
|
18
|
+
require 'tmdb_rexx/client/network'
|
19
|
+
require 'tmdb_rexx/client/review'
|
20
|
+
require 'tmdb_rexx/client/timezone'
|
21
|
+
|
22
|
+
module TmdbRexx
|
23
|
+
class Client
|
24
|
+
# Core
|
25
|
+
include TmdbRexx::Connection
|
26
|
+
include TmdbRexx::Default
|
27
|
+
include TmdbRexx::Request
|
28
|
+
# Client
|
29
|
+
include TmdbRexx::Client::Movie
|
30
|
+
include TmdbRexx::Client::Certification
|
31
|
+
include TmdbRexx::Client::Changes
|
32
|
+
include TmdbRexx::Client::Collection
|
33
|
+
include TmdbRexx::Client::Company
|
34
|
+
include TmdbRexx::Client::Credit
|
35
|
+
include TmdbRexx::Client::Discover
|
36
|
+
include TmdbRexx::Client::Find
|
37
|
+
include TmdbRexx::Client::Genre
|
38
|
+
include TmdbRexx::Client::Job
|
39
|
+
include TmdbRexx::Client::Keyword
|
40
|
+
include TmdbRexx::Client::Network
|
41
|
+
include TmdbRexx::Client::Review
|
42
|
+
include TmdbRexx::Client::Timezone
|
43
|
+
|
44
|
+
def initialize(options = {})
|
45
|
+
TmdbRexx::Configuration.keys.each do |key|
|
46
|
+
instance_variable_set(
|
47
|
+
:"@#{key}", options[key] ||
|
48
|
+
TmdbRexx.instance_variable_get(:"@#{key}")
|
49
|
+
)
|
50
|
+
end
|
51
|
+
|
52
|
+
raise TmdbRexx::MissingAPIKeyError if @api_key.nil? || @api_key.empty?
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module TmdbRexx
|
2
|
+
module Configuration
|
3
|
+
VALID_OPTION_KEYS = %i(api_key base_url version include_adult language).freeze
|
4
|
+
|
5
|
+
#attr_accessor(*VALID_OPTION_KEYS)
|
6
|
+
attr_accessor :api_key, :base_url, :version, :include_adult, :language
|
7
|
+
|
8
|
+
class << self
|
9
|
+
def keys
|
10
|
+
@keys ||= VALID_OPTION_KEYS
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def configure
|
15
|
+
yield self
|
16
|
+
end
|
17
|
+
|
18
|
+
# Reset configuration options to default values
|
19
|
+
def reset!
|
20
|
+
TmdbRexx::Configuration.keys.each do |key|
|
21
|
+
instance_variable_set(:"@#{key}", TmdbRexx::Default.options[key])
|
22
|
+
end
|
23
|
+
self
|
24
|
+
end
|
25
|
+
|
26
|
+
def respond_to?(method, include_private=false)
|
27
|
+
new.respond_to?(method, include_private) || super(method, include_private)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def options
|
33
|
+
Hash[TmdbRexx::Configuration.keys.map{|key|
|
34
|
+
[key, instance_variable_get(:"@#{key}")]
|
35
|
+
}]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "json"
|
2
|
+
require "faraday_middleware"
|
3
|
+
|
4
|
+
module TmdbRexx
|
5
|
+
module Connection
|
6
|
+
def connection(options = {})
|
7
|
+
Faraday.new(options) do |build|
|
8
|
+
build.request :url_encoded
|
9
|
+
build.response :mashify
|
10
|
+
build.response :json, :content_type => /\bjson$/
|
11
|
+
build.adapter Faraday.default_adapter
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module TmdbRexx
|
2
|
+
# Default configuration for {Client}
|
3
|
+
module Default
|
4
|
+
BASE_URL = "https://api.themoviedb.org".freeze
|
5
|
+
VERSION = 3
|
6
|
+
INCLUDE_ADULT = false
|
7
|
+
LANGUAGE = "en".freeze
|
8
|
+
|
9
|
+
# Default API endpoint built from the base url and version
|
10
|
+
# @return [String]
|
11
|
+
def api_endpoint
|
12
|
+
"#{@base_url}/#{@version}"
|
13
|
+
end
|
14
|
+
|
15
|
+
class << self
|
16
|
+
# Configuration options
|
17
|
+
# @return [Hash]
|
18
|
+
def options
|
19
|
+
Hash[TmdbRexx::Configuration.keys.map{|key| [key, send(key)]}]
|
20
|
+
end
|
21
|
+
|
22
|
+
# Default api_key key from ENV
|
23
|
+
# @return [String]
|
24
|
+
def api_key
|
25
|
+
ENV['MOVIEREXX_API_KEY'] || @api_key
|
26
|
+
end
|
27
|
+
|
28
|
+
# Default API base_url from ENV or {API_BASE_URL}
|
29
|
+
# @return [String]
|
30
|
+
def base_url
|
31
|
+
ENV['MOVIEREXX_BASE_URL'] || @base_url || BASE_URL
|
32
|
+
end
|
33
|
+
|
34
|
+
# Default API version from ENV or {API_VERSION}
|
35
|
+
# @return [String]
|
36
|
+
def version
|
37
|
+
ENV['MOVIEREXX_VERSION'] || @version || VERSION
|
38
|
+
end
|
39
|
+
|
40
|
+
# Default include_adult from ENV or {INCLUDE_ADULT}
|
41
|
+
# @return [String]
|
42
|
+
def include_adult
|
43
|
+
ENV['MOVIEREXX_INCLUDE_ADULT'] || @include_adult || INCLUDE_ADULT
|
44
|
+
end
|
45
|
+
|
46
|
+
# Default language from ENV or {LANGUAGE}
|
47
|
+
# @return [String]
|
48
|
+
def language
|
49
|
+
ENV['MOVIEREXX_LANGUAGE'] || @language || LANGUAGE
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module TmdbRexx
|
2
|
+
module Request
|
3
|
+
def get(path, options = {})
|
4
|
+
request(:get, path, options)
|
5
|
+
end
|
6
|
+
|
7
|
+
def post(path, options = {})
|
8
|
+
request(:post, path, options)
|
9
|
+
end
|
10
|
+
|
11
|
+
def put(path, options = {})
|
12
|
+
request(:put, path, options)
|
13
|
+
end
|
14
|
+
|
15
|
+
def delete(path, options = {})
|
16
|
+
request(:delete, path, options)
|
17
|
+
end
|
18
|
+
|
19
|
+
def last_response
|
20
|
+
@last_response if defined? @last_response
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
def request(method, path, options = {})
|
25
|
+
url = options.delete(:api_endpoint) || api_endpoint
|
26
|
+
|
27
|
+
connection_options = {
|
28
|
+
:url => url
|
29
|
+
}
|
30
|
+
|
31
|
+
@last_response = response = connection(connection_options).send(method) do |request|
|
32
|
+
request.url(path, options)
|
33
|
+
request.params['api_key'] = @api_key
|
34
|
+
end
|
35
|
+
|
36
|
+
response.body
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/tmdb_rexx.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require "tmdb_rexx/version"
|
2
|
+
require "tmdb_rexx/configuration"
|
3
|
+
require "tmdb_rexx/client"
|
4
|
+
|
5
|
+
module TmdbRexx
|
6
|
+
class << self
|
7
|
+
include TmdbRexx::Configuration
|
8
|
+
|
9
|
+
# Alias for TmdbRexx::Client.new
|
10
|
+
# @return [TmdbRexx::Client]
|
11
|
+
def new(options = {})
|
12
|
+
TmdbRexx::Client.new(options)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/tmdb_rexx.gemspec
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'tmdb_rexx/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "tmdb_rexx"
|
8
|
+
spec.version = TmdbRexx::VERSION
|
9
|
+
spec.authors = ["Jason Truluck"]
|
10
|
+
spec.email = ["jason.truluck@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Ruby wrapper for TMDB API}
|
13
|
+
spec.description = %q{Ruby wrapper for TMDB API}
|
14
|
+
spec.homepage = "https://github.com/FilmRexx/tmdb_rexx"
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
|
+
spec.require_paths = ["lib"]
|
21
|
+
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.9"
|
23
|
+
spec.add_dependency "faraday", "~> 0.9"
|
24
|
+
spec.add_dependency "faraday_middleware", "~> 0.10"
|
25
|
+
spec.add_dependency "hashie", "~> 3.4"
|
26
|
+
spec.add_dependency 'multi_json', "~> 1.11"
|
27
|
+
spec.add_development_dependency "rspec", "~> 3.3"
|
28
|
+
spec.add_development_dependency "json_spec", "~> 1.1"
|
29
|
+
spec.add_development_dependency "rake", "~> 10"
|
30
|
+
spec.add_development_dependency "vcr", "~> 2.9"
|
31
|
+
spec.add_development_dependency "webmock", "~> 1.21"
|
32
|
+
spec.add_development_dependency "pry", "~> 0.10"
|
33
|
+
spec.add_development_dependency "codeclimate-test-reporter", "~> 0.4"
|
34
|
+
end
|