themoviedb 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/themoviedb/api.rb +16 -16
- data/lib/themoviedb/collection.rb +24 -24
- data/lib/themoviedb/company.rb +26 -26
- data/lib/themoviedb/configuration.rb +43 -43
- data/lib/themoviedb/movie.rb +137 -137
- data/lib/themoviedb/people.rb +56 -56
- data/lib/themoviedb/resource.rb +57 -57
- data/lib/themoviedb/search.rb +52 -52
- data/lib/themoviedb.rb +2 -2
- data/spec/movie_spec.rb +190 -0
- data/themoviedb.gemspec +3 -3
- metadata +11 -15
- data/test/movie_test.rb +0 -24
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5132d9504ddeeb045fef1f6a1d71d793f964fc34
|
4
|
+
data.tar.gz: 52d2f201f5aae4384601c6fded28625e8246b115
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9580fa9d16a5790df94a9613e4ce44610b047862883ddb2831f90cd2304601350159aeed7281deab6f40a6e291ef081fd5497d7d2b63bcb87135d018ee9d424e
|
7
|
+
data.tar.gz: cf6b0a5897793c9b6906e878fefcb22c6d91f6671ca61ff8399e2887bd72087188d319b669151de276e0afe23cc3e64e5f7ab6415e05fb15aa42a53a784ff71d
|
data/lib/themoviedb/api.rb
CHANGED
@@ -1,17 +1,17 @@
|
|
1
|
-
module Tmdb
|
2
|
-
class Api
|
3
|
-
include HTTParty
|
4
|
-
base_uri 'http://api.themoviedb.org/3/'
|
5
|
-
format :json
|
6
|
-
headers 'Accept' => 'application/json'
|
7
|
-
|
8
|
-
def self.config
|
9
|
-
@@config
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.key(api_key)
|
13
|
-
@@config = { :api_key => api_key }
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
1
|
+
module Tmdb
|
2
|
+
class Api
|
3
|
+
include HTTParty
|
4
|
+
base_uri 'http://api.themoviedb.org/3/'
|
5
|
+
format :json
|
6
|
+
headers 'Accept' => 'application/json'
|
7
|
+
|
8
|
+
def self.config
|
9
|
+
@@config
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.key(api_key)
|
13
|
+
@@config = { :api_key => api_key }
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
17
|
end
|
@@ -1,25 +1,25 @@
|
|
1
|
-
module Tmdb
|
2
|
-
class Collection < Resource
|
3
|
-
has_resource 'collection', :plural => 'collections'
|
4
|
-
|
5
|
-
#http://docs.themoviedb.apiary.io/#collections
|
6
|
-
@@fields = [
|
7
|
-
:backdrop_path,
|
8
|
-
:id,
|
9
|
-
:name,
|
10
|
-
:parts,
|
11
|
-
:poster_path
|
12
|
-
]
|
13
|
-
|
14
|
-
@@fields.each do |field|
|
15
|
-
attr_accessor field
|
16
|
-
end
|
17
|
-
|
18
|
-
#Get all of the images for a particular collection by collection id.
|
19
|
-
def self.images(id, conditions={})
|
20
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/images")
|
21
|
-
search.fetch_response
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
1
|
+
module Tmdb
|
2
|
+
class Collection < Resource
|
3
|
+
has_resource 'collection', :plural => 'collections'
|
4
|
+
|
5
|
+
#http://docs.themoviedb.apiary.io/#collections
|
6
|
+
@@fields = [
|
7
|
+
:backdrop_path,
|
8
|
+
:id,
|
9
|
+
:name,
|
10
|
+
:parts,
|
11
|
+
:poster_path
|
12
|
+
]
|
13
|
+
|
14
|
+
@@fields.each do |field|
|
15
|
+
attr_accessor field
|
16
|
+
end
|
17
|
+
|
18
|
+
#Get all of the images for a particular collection by collection id.
|
19
|
+
def self.images(id, conditions={})
|
20
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/images")
|
21
|
+
search.fetch_response
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
25
|
end
|
data/lib/themoviedb/company.rb
CHANGED
@@ -1,27 +1,27 @@
|
|
1
|
-
module Tmdb
|
2
|
-
class Company < Resource
|
3
|
-
has_resource 'company', :plural => 'companies'
|
4
|
-
|
5
|
-
#http://docs.themoviedb.apiary.io/#companies
|
6
|
-
@@fields = [
|
7
|
-
:description,
|
8
|
-
:headquarters,
|
9
|
-
:homepage,
|
10
|
-
:id,
|
11
|
-
:logo_path,
|
12
|
-
:name,
|
13
|
-
:parent_company
|
14
|
-
]
|
15
|
-
|
16
|
-
@@fields.each do |field|
|
17
|
-
attr_accessor field
|
18
|
-
end
|
19
|
-
|
20
|
-
#Get the list of movies associated with a particular company.
|
21
|
-
def self.movies(id, conditions={})
|
22
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/movies")
|
23
|
-
search.fetch
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
1
|
+
module Tmdb
|
2
|
+
class Company < Resource
|
3
|
+
has_resource 'company', :plural => 'companies'
|
4
|
+
|
5
|
+
#http://docs.themoviedb.apiary.io/#companies
|
6
|
+
@@fields = [
|
7
|
+
:description,
|
8
|
+
:headquarters,
|
9
|
+
:homepage,
|
10
|
+
:id,
|
11
|
+
:logo_path,
|
12
|
+
:name,
|
13
|
+
:parent_company
|
14
|
+
]
|
15
|
+
|
16
|
+
@@fields.each do |field|
|
17
|
+
attr_accessor field
|
18
|
+
end
|
19
|
+
|
20
|
+
#Get the list of movies associated with a particular company.
|
21
|
+
def self.movies(id, conditions={})
|
22
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/movies")
|
23
|
+
search.fetch
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
27
|
end
|
@@ -1,44 +1,44 @@
|
|
1
|
-
module Tmdb
|
2
|
-
class Configuration
|
3
|
-
def initialize()
|
4
|
-
@params = {}
|
5
|
-
@resource = '/configuration'
|
6
|
-
self
|
7
|
-
end
|
8
|
-
|
9
|
-
# To build an image URL, you will need 3 pieces of data.
|
10
|
-
# The base_url, size and file_path.
|
11
|
-
# Simply combine them all and you will have a fully qualified URL. Here’s an example URL:
|
12
|
-
# http://cf2.imgobject.com/t/p/w500/8uO0gUM8aNqYLs1OsTBQiXu0fEv.jpg
|
13
|
-
def base_url
|
14
|
-
fetch_response['images']['base_url']
|
15
|
-
end
|
16
|
-
|
17
|
-
# HTTPS
|
18
|
-
def secure_base_url
|
19
|
-
fetch_response['images']['secure_base_url']
|
20
|
-
end
|
21
|
-
|
22
|
-
def poster_sizes
|
23
|
-
fetch_response['images']['poster_sizes']
|
24
|
-
end
|
25
|
-
|
26
|
-
def backdrop_sizes
|
27
|
-
fetch_response['images']['backdrop_sizes']
|
28
|
-
end
|
29
|
-
|
30
|
-
def profile_sizes
|
31
|
-
fetch_response['images']['profile_sizes']
|
32
|
-
end
|
33
|
-
|
34
|
-
def logo_sizes
|
35
|
-
fetch_response['images']['logo_sizes']
|
36
|
-
end
|
37
|
-
|
38
|
-
def fetch_response
|
39
|
-
options = @params.merge(Api.config)
|
40
|
-
response = Api.get(@resource, :query => options)
|
41
|
-
response.to_hash
|
42
|
-
end
|
43
|
-
end
|
1
|
+
module Tmdb
|
2
|
+
class Configuration
|
3
|
+
def initialize()
|
4
|
+
@params = {}
|
5
|
+
@resource = '/configuration'
|
6
|
+
self
|
7
|
+
end
|
8
|
+
|
9
|
+
# To build an image URL, you will need 3 pieces of data.
|
10
|
+
# The base_url, size and file_path.
|
11
|
+
# Simply combine them all and you will have a fully qualified URL. Here’s an example URL:
|
12
|
+
# http://cf2.imgobject.com/t/p/w500/8uO0gUM8aNqYLs1OsTBQiXu0fEv.jpg
|
13
|
+
def base_url
|
14
|
+
fetch_response['images']['base_url']
|
15
|
+
end
|
16
|
+
|
17
|
+
# HTTPS
|
18
|
+
def secure_base_url
|
19
|
+
fetch_response['images']['secure_base_url']
|
20
|
+
end
|
21
|
+
|
22
|
+
def poster_sizes
|
23
|
+
fetch_response['images']['poster_sizes']
|
24
|
+
end
|
25
|
+
|
26
|
+
def backdrop_sizes
|
27
|
+
fetch_response['images']['backdrop_sizes']
|
28
|
+
end
|
29
|
+
|
30
|
+
def profile_sizes
|
31
|
+
fetch_response['images']['profile_sizes']
|
32
|
+
end
|
33
|
+
|
34
|
+
def logo_sizes
|
35
|
+
fetch_response['images']['logo_sizes']
|
36
|
+
end
|
37
|
+
|
38
|
+
def fetch_response
|
39
|
+
options = @params.merge(Api.config)
|
40
|
+
response = Api.get(@resource, :query => options)
|
41
|
+
response.to_hash
|
42
|
+
end
|
43
|
+
end
|
44
44
|
end
|
data/lib/themoviedb/movie.rb
CHANGED
@@ -1,137 +1,137 @@
|
|
1
|
-
module Tmdb
|
2
|
-
class Movie < Resource
|
3
|
-
has_resource 'movie', :plural => 'movies'
|
4
|
-
|
5
|
-
#http://docs.themoviedb.apiary.io/#movies
|
6
|
-
@@fields = [
|
7
|
-
:adult,
|
8
|
-
:backdrop_path,
|
9
|
-
:belongs_to_collection,
|
10
|
-
:budget,
|
11
|
-
:genres,
|
12
|
-
:homepage,
|
13
|
-
:id,
|
14
|
-
:imdb_id,
|
15
|
-
:original_title,
|
16
|
-
:overview,
|
17
|
-
:popularity,
|
18
|
-
:poster_path,
|
19
|
-
:production_companies,
|
20
|
-
:production_countries,
|
21
|
-
:release_date,
|
22
|
-
:revenue,
|
23
|
-
:runtime,
|
24
|
-
:spoken_languages,
|
25
|
-
:status,
|
26
|
-
:tagline,
|
27
|
-
:title,
|
28
|
-
:vote_average,
|
29
|
-
:vote_count
|
30
|
-
]
|
31
|
-
|
32
|
-
@@fields.each do |field|
|
33
|
-
attr_accessor field
|
34
|
-
end
|
35
|
-
|
36
|
-
#Get the latest movie id. singular
|
37
|
-
def self.latest
|
38
|
-
search = Tmdb::Search.new("/movie/latest")
|
39
|
-
search.fetch_response
|
40
|
-
end
|
41
|
-
|
42
|
-
#Get the list of upcoming movies. This list refreshes every day. The maximum number of items this list will include is 100.
|
43
|
-
def self.upcoming
|
44
|
-
search = Tmdb::Search.new("/movie/upcoming")
|
45
|
-
search.fetch
|
46
|
-
end
|
47
|
-
|
48
|
-
#Get the list of movies playing in theatres. This list refreshes every day. The maximum number of items this list will include is 100.
|
49
|
-
def self.now_playing
|
50
|
-
search = Tmdb::Search.new("/movie/now_playing")
|
51
|
-
search.fetch
|
52
|
-
end
|
53
|
-
|
54
|
-
#Get the list of popular movies on The Movie Database. This list refreshes every day.
|
55
|
-
def self.popular
|
56
|
-
search = Tmdb::Search.new("/movie/popular")
|
57
|
-
search.fetch
|
58
|
-
end
|
59
|
-
|
60
|
-
#Get the list of top rated movies. By default, this list will only include movies that have 10 or more votes. This list refreshes every day.
|
61
|
-
def self.top_rated
|
62
|
-
search = Tmdb::Search.new("/movie/top_rated")
|
63
|
-
search.fetch
|
64
|
-
end
|
65
|
-
|
66
|
-
#Get the alternative titles for a specific movie id.
|
67
|
-
def self.alternative_titles(id, conditions={})
|
68
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/alternative_titles")
|
69
|
-
search.fetch_response
|
70
|
-
end
|
71
|
-
|
72
|
-
#Get the cast information for a specific movie id.
|
73
|
-
def self.casts(id, conditions={})
|
74
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/casts")
|
75
|
-
search.fetch_response['cast']
|
76
|
-
end
|
77
|
-
|
78
|
-
#Get the cast information for a specific movie id.
|
79
|
-
def self.crew(id, conditions={})
|
80
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/casts")
|
81
|
-
search.fetch_response['crew']
|
82
|
-
end
|
83
|
-
|
84
|
-
#Get the images (posters and backdrops) for a specific movie id.
|
85
|
-
def self.images(id, conditions={})
|
86
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/images")
|
87
|
-
search.fetch_response
|
88
|
-
end
|
89
|
-
|
90
|
-
#Get the plot keywords for a specific movie id.
|
91
|
-
def self.keywords(id, conditions={})
|
92
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/keywords")
|
93
|
-
search.fetch_response
|
94
|
-
end
|
95
|
-
|
96
|
-
#Get the release date by country for a specific movie id.
|
97
|
-
def self.releases(id, conditions={})
|
98
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/releases")
|
99
|
-
search.fetch_response
|
100
|
-
end
|
101
|
-
|
102
|
-
#Get the trailers for a specific movie id.
|
103
|
-
def self.trailers(id, conditions={})
|
104
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/trailers")
|
105
|
-
search.fetch_response
|
106
|
-
end
|
107
|
-
|
108
|
-
#Get the translations for a specific movie id.
|
109
|
-
def self.translations(id, conditions={})
|
110
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/translations")
|
111
|
-
search.fetch_response
|
112
|
-
end
|
113
|
-
|
114
|
-
#Get the similar movies for a specific movie id.
|
115
|
-
def self.similar_movies(id, conditions={})
|
116
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/similar_movies")
|
117
|
-
search.fetch_response['results']
|
118
|
-
end
|
119
|
-
|
120
|
-
#Get the lists that the movie belongs to.
|
121
|
-
def self.lists(id, conditions={})
|
122
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/lists")
|
123
|
-
search.fetch_response
|
124
|
-
end
|
125
|
-
|
126
|
-
#Get the changes for a specific movie id.
|
127
|
-
#Changes are grouped by key, and ordered by date in descending order.
|
128
|
-
#By default, only the last 24 hours of changes are returned.
|
129
|
-
#The maximum number of days that can be returned in a single request is 14.
|
130
|
-
#The language is present on fields that are translatable.
|
131
|
-
def self.changes(id, conditions={})
|
132
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/changes")
|
133
|
-
search.fetch_response
|
134
|
-
end
|
135
|
-
|
136
|
-
end
|
137
|
-
end
|
1
|
+
module Tmdb
|
2
|
+
class Movie < Resource
|
3
|
+
has_resource 'movie', :plural => 'movies'
|
4
|
+
|
5
|
+
#http://docs.themoviedb.apiary.io/#movies
|
6
|
+
@@fields = [
|
7
|
+
:adult,
|
8
|
+
:backdrop_path,
|
9
|
+
:belongs_to_collection,
|
10
|
+
:budget,
|
11
|
+
:genres,
|
12
|
+
:homepage,
|
13
|
+
:id,
|
14
|
+
:imdb_id,
|
15
|
+
:original_title,
|
16
|
+
:overview,
|
17
|
+
:popularity,
|
18
|
+
:poster_path,
|
19
|
+
:production_companies,
|
20
|
+
:production_countries,
|
21
|
+
:release_date,
|
22
|
+
:revenue,
|
23
|
+
:runtime,
|
24
|
+
:spoken_languages,
|
25
|
+
:status,
|
26
|
+
:tagline,
|
27
|
+
:title,
|
28
|
+
:vote_average,
|
29
|
+
:vote_count
|
30
|
+
]
|
31
|
+
|
32
|
+
@@fields.each do |field|
|
33
|
+
attr_accessor field
|
34
|
+
end
|
35
|
+
|
36
|
+
#Get the latest movie id. singular
|
37
|
+
def self.latest
|
38
|
+
search = Tmdb::Search.new("/movie/latest")
|
39
|
+
search.fetch_response
|
40
|
+
end
|
41
|
+
|
42
|
+
#Get the list of upcoming movies. This list refreshes every day. The maximum number of items this list will include is 100.
|
43
|
+
def self.upcoming
|
44
|
+
search = Tmdb::Search.new("/movie/upcoming")
|
45
|
+
search.fetch
|
46
|
+
end
|
47
|
+
|
48
|
+
#Get the list of movies playing in theatres. This list refreshes every day. The maximum number of items this list will include is 100.
|
49
|
+
def self.now_playing
|
50
|
+
search = Tmdb::Search.new("/movie/now_playing")
|
51
|
+
search.fetch
|
52
|
+
end
|
53
|
+
|
54
|
+
#Get the list of popular movies on The Movie Database. This list refreshes every day.
|
55
|
+
def self.popular
|
56
|
+
search = Tmdb::Search.new("/movie/popular")
|
57
|
+
search.fetch
|
58
|
+
end
|
59
|
+
|
60
|
+
#Get the list of top rated movies. By default, this list will only include movies that have 10 or more votes. This list refreshes every day.
|
61
|
+
def self.top_rated
|
62
|
+
search = Tmdb::Search.new("/movie/top_rated")
|
63
|
+
search.fetch
|
64
|
+
end
|
65
|
+
|
66
|
+
#Get the alternative titles for a specific movie id.
|
67
|
+
def self.alternative_titles(id, conditions={})
|
68
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/alternative_titles")
|
69
|
+
search.fetch_response
|
70
|
+
end
|
71
|
+
|
72
|
+
#Get the cast information for a specific movie id.
|
73
|
+
def self.casts(id, conditions={})
|
74
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/casts")
|
75
|
+
search.fetch_response['cast']
|
76
|
+
end
|
77
|
+
|
78
|
+
#Get the cast information for a specific movie id.
|
79
|
+
def self.crew(id, conditions={})
|
80
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/casts")
|
81
|
+
search.fetch_response['crew']
|
82
|
+
end
|
83
|
+
|
84
|
+
#Get the images (posters and backdrops) for a specific movie id.
|
85
|
+
def self.images(id, conditions={})
|
86
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/images")
|
87
|
+
search.fetch_response
|
88
|
+
end
|
89
|
+
|
90
|
+
#Get the plot keywords for a specific movie id.
|
91
|
+
def self.keywords(id, conditions={})
|
92
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/keywords")
|
93
|
+
search.fetch_response
|
94
|
+
end
|
95
|
+
|
96
|
+
#Get the release date by country for a specific movie id.
|
97
|
+
def self.releases(id, conditions={})
|
98
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/releases")
|
99
|
+
search.fetch_response
|
100
|
+
end
|
101
|
+
|
102
|
+
#Get the trailers for a specific movie id.
|
103
|
+
def self.trailers(id, conditions={})
|
104
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/trailers")
|
105
|
+
search.fetch_response
|
106
|
+
end
|
107
|
+
|
108
|
+
#Get the translations for a specific movie id.
|
109
|
+
def self.translations(id, conditions={})
|
110
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/translations")
|
111
|
+
search.fetch_response
|
112
|
+
end
|
113
|
+
|
114
|
+
#Get the similar movies for a specific movie id.
|
115
|
+
def self.similar_movies(id, conditions={})
|
116
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/similar_movies")
|
117
|
+
search.fetch_response['results']
|
118
|
+
end
|
119
|
+
|
120
|
+
#Get the lists that the movie belongs to.
|
121
|
+
def self.lists(id, conditions={})
|
122
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/lists")
|
123
|
+
search.fetch_response
|
124
|
+
end
|
125
|
+
|
126
|
+
#Get the changes for a specific movie id.
|
127
|
+
#Changes are grouped by key, and ordered by date in descending order.
|
128
|
+
#By default, only the last 24 hours of changes are returned.
|
129
|
+
#The maximum number of days that can be returned in a single request is 14.
|
130
|
+
#The language is present on fields that are translatable.
|
131
|
+
def self.changes(id, conditions={})
|
132
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/changes")
|
133
|
+
search.fetch_response
|
134
|
+
end
|
135
|
+
|
136
|
+
end
|
137
|
+
end
|
data/lib/themoviedb/people.rb
CHANGED
@@ -1,57 +1,57 @@
|
|
1
|
-
module Tmdb
|
2
|
-
class People < Resource
|
3
|
-
has_resource 'person', :plural => 'persons'
|
4
|
-
|
5
|
-
#http://docs.themoviedb.apiary.io/#people
|
6
|
-
@@fields = [
|
7
|
-
:adult,
|
8
|
-
:also_known_as,
|
9
|
-
:biography,
|
10
|
-
:birthday,
|
11
|
-
:deathday,
|
12
|
-
:homepage,
|
13
|
-
:id,
|
14
|
-
:name,
|
15
|
-
:place_of_birth,
|
16
|
-
:profile_path
|
17
|
-
]
|
18
|
-
|
19
|
-
@@fields.each do |field|
|
20
|
-
attr_accessor field
|
21
|
-
end
|
22
|
-
|
23
|
-
#Get the list of popular people on The Movie Database. This list refreshes every day.
|
24
|
-
def self.popular
|
25
|
-
search = Tmdb::Search.new("/people/popular")
|
26
|
-
search.fetch
|
27
|
-
end
|
28
|
-
|
29
|
-
#Get the latest person id.
|
30
|
-
def self.latest
|
31
|
-
search = Tmdb::Search.new("/people/latest")
|
32
|
-
search.fetch_response
|
33
|
-
end
|
34
|
-
|
35
|
-
#Get the credits for a specific person id.
|
36
|
-
def self.credits(id, conditions={})
|
37
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/credits")
|
38
|
-
search.fetch_response
|
39
|
-
end
|
40
|
-
|
41
|
-
#Get the images for a specific person id.
|
42
|
-
def self.images(id, conditions={})
|
43
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/images")
|
44
|
-
search.fetch_response
|
45
|
-
end
|
46
|
-
|
47
|
-
#Get the changes for a specific person id.
|
48
|
-
#Changes are grouped by key, and ordered by date in descending order.
|
49
|
-
#By default, only the last 24 hours of changes are returned.
|
50
|
-
#The maximum number of days that can be returned in a single request is 14. The language is present on fields that are translatable.
|
51
|
-
def self.changes(id, conditions={})
|
52
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/changes")
|
53
|
-
search.fetch_response
|
54
|
-
end
|
55
|
-
|
56
|
-
end
|
1
|
+
module Tmdb
|
2
|
+
class People < Resource
|
3
|
+
has_resource 'person', :plural => 'persons'
|
4
|
+
|
5
|
+
#http://docs.themoviedb.apiary.io/#people
|
6
|
+
@@fields = [
|
7
|
+
:adult,
|
8
|
+
:also_known_as,
|
9
|
+
:biography,
|
10
|
+
:birthday,
|
11
|
+
:deathday,
|
12
|
+
:homepage,
|
13
|
+
:id,
|
14
|
+
:name,
|
15
|
+
:place_of_birth,
|
16
|
+
:profile_path
|
17
|
+
]
|
18
|
+
|
19
|
+
@@fields.each do |field|
|
20
|
+
attr_accessor field
|
21
|
+
end
|
22
|
+
|
23
|
+
#Get the list of popular people on The Movie Database. This list refreshes every day.
|
24
|
+
def self.popular
|
25
|
+
search = Tmdb::Search.new("/people/popular")
|
26
|
+
search.fetch
|
27
|
+
end
|
28
|
+
|
29
|
+
#Get the latest person id.
|
30
|
+
def self.latest
|
31
|
+
search = Tmdb::Search.new("/people/latest")
|
32
|
+
search.fetch_response
|
33
|
+
end
|
34
|
+
|
35
|
+
#Get the credits for a specific person id.
|
36
|
+
def self.credits(id, conditions={})
|
37
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/credits")
|
38
|
+
search.fetch_response
|
39
|
+
end
|
40
|
+
|
41
|
+
#Get the images for a specific person id.
|
42
|
+
def self.images(id, conditions={})
|
43
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/images")
|
44
|
+
search.fetch_response
|
45
|
+
end
|
46
|
+
|
47
|
+
#Get the changes for a specific person id.
|
48
|
+
#Changes are grouped by key, and ordered by date in descending order.
|
49
|
+
#By default, only the last 24 hours of changes are returned.
|
50
|
+
#The maximum number of days that can be returned in a single request is 14. The language is present on fields that are translatable.
|
51
|
+
def self.changes(id, conditions={})
|
52
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}/changes")
|
53
|
+
search.fetch_response
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
57
|
end
|
data/lib/themoviedb/resource.rb
CHANGED
@@ -1,58 +1,58 @@
|
|
1
|
-
module Tmdb
|
2
|
-
class Resource
|
3
|
-
@@endpoints = {}
|
4
|
-
@@endpoint_id = {}
|
5
|
-
|
6
|
-
def self.has_resource(singular=nil, opts={})
|
7
|
-
@@endpoints[self.name.downcase] = {
|
8
|
-
:singular => singular.nil? ? "#{self.name.downcase}" : singular,
|
9
|
-
:plural => opts[:plural].nil? ? "#{self.name.downcase}s" : opts[:plural]
|
10
|
-
}
|
11
|
-
@@endpoint_id[self.name.downcase] = opts[:id].nil? ? "" : "#{opts[:id]}-"
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.endpoints
|
15
|
-
@@endpoints[self.name.downcase]
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.endpoint_id
|
19
|
-
@@endpoint_id[self.name.downcase]
|
20
|
-
end
|
21
|
-
|
22
|
-
#Get the basic resource information for a specific id.
|
23
|
-
def self.detail(id, conditions={})
|
24
|
-
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}")
|
25
|
-
search.filter(conditions)
|
26
|
-
self.new(search.fetch_response)
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.list(conditions={})
|
30
|
-
search = Tmdb::Search.new("/#{self.endpoints[:plural]}")
|
31
|
-
search.filter(conditions)
|
32
|
-
search.fetch.collect do |result|
|
33
|
-
self.new(result)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.search(query)
|
38
|
-
search = Tmdb::Search.new
|
39
|
-
search.resource("#{self.endpoints[:singular]}")
|
40
|
-
search.query(query)
|
41
|
-
search.fetch.collect do |result|
|
42
|
-
self.new(result)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
class << self
|
47
|
-
alias_method :find, :search
|
48
|
-
end
|
49
|
-
|
50
|
-
def initialize(attributes={})
|
51
|
-
attributes.each do |key, value|
|
52
|
-
if self.respond_to?(key.to_sym)
|
53
|
-
self.instance_variable_set("@#{key}", value)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
1
|
+
module Tmdb
|
2
|
+
class Resource
|
3
|
+
@@endpoints = {}
|
4
|
+
@@endpoint_id = {}
|
5
|
+
|
6
|
+
def self.has_resource(singular=nil, opts={})
|
7
|
+
@@endpoints[self.name.downcase] = {
|
8
|
+
:singular => singular.nil? ? "#{self.name.downcase}" : singular,
|
9
|
+
:plural => opts[:plural].nil? ? "#{self.name.downcase}s" : opts[:plural]
|
10
|
+
}
|
11
|
+
@@endpoint_id[self.name.downcase] = opts[:id].nil? ? "" : "#{opts[:id]}-"
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.endpoints
|
15
|
+
@@endpoints[self.name.downcase]
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.endpoint_id
|
19
|
+
@@endpoint_id[self.name.downcase]
|
20
|
+
end
|
21
|
+
|
22
|
+
#Get the basic resource information for a specific id.
|
23
|
+
def self.detail(id, conditions={})
|
24
|
+
search = Tmdb::Search.new("/#{self.endpoints[:singular]}/#{self.endpoint_id + id.to_s}")
|
25
|
+
search.filter(conditions)
|
26
|
+
self.new(search.fetch_response)
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.list(conditions={})
|
30
|
+
search = Tmdb::Search.new("/#{self.endpoints[:plural]}")
|
31
|
+
search.filter(conditions)
|
32
|
+
search.fetch.collect do |result|
|
33
|
+
self.new(result)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.search(query)
|
38
|
+
search = Tmdb::Search.new
|
39
|
+
search.resource("#{self.endpoints[:singular]}")
|
40
|
+
search.query(query)
|
41
|
+
search.fetch.collect do |result|
|
42
|
+
self.new(result)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
class << self
|
47
|
+
alias_method :find, :search
|
48
|
+
end
|
49
|
+
|
50
|
+
def initialize(attributes={})
|
51
|
+
attributes.each do |key, value|
|
52
|
+
if self.respond_to?(key.to_sym)
|
53
|
+
self.instance_variable_set("@#{key}", value)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
58
|
end
|
data/lib/themoviedb/search.rb
CHANGED
@@ -1,53 +1,53 @@
|
|
1
|
-
module Tmdb
|
2
|
-
class Search
|
3
|
-
def initialize(resource=nil)
|
4
|
-
@params = {}
|
5
|
-
@resource = resource.nil? ? '/search/movie' : resource
|
6
|
-
self
|
7
|
-
end
|
8
|
-
|
9
|
-
def query(query)
|
10
|
-
@params[:query] = "#{query}"
|
11
|
-
self
|
12
|
-
end
|
13
|
-
|
14
|
-
def resource(resource)
|
15
|
-
if resource == 'movie' then
|
16
|
-
@resource = '/search/movie'
|
17
|
-
elsif resource == 'collection' then
|
18
|
-
@resource = '/search/collection'
|
19
|
-
elsif resource == 'person' then
|
20
|
-
@resource = '/search/person'
|
21
|
-
elsif resource == 'list' then
|
22
|
-
@resource = '/search/list'
|
23
|
-
elsif resource == 'company' then
|
24
|
-
@resource = '/search/company'
|
25
|
-
elsif resource == 'keyword' then
|
26
|
-
@resource = '/search/keyword'
|
27
|
-
end
|
28
|
-
self
|
29
|
-
end
|
30
|
-
|
31
|
-
def filter(conditions)
|
32
|
-
if conditions
|
33
|
-
conditions.each do |key, value|
|
34
|
-
if self.respond_to?(key)
|
35
|
-
self.send(key, value)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
#Sends back main data
|
42
|
-
def fetch()
|
43
|
-
fetch_response['results']
|
44
|
-
end
|
45
|
-
|
46
|
-
#Send back whole response
|
47
|
-
def fetch_response
|
48
|
-
options = @params.merge(Api.config)
|
49
|
-
response = Api.get(@resource, :query => options, :headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json' })
|
50
|
-
response.to_hash
|
51
|
-
end
|
52
|
-
end
|
1
|
+
module Tmdb
|
2
|
+
class Search
|
3
|
+
def initialize(resource=nil)
|
4
|
+
@params = {}
|
5
|
+
@resource = resource.nil? ? '/search/movie' : resource
|
6
|
+
self
|
7
|
+
end
|
8
|
+
|
9
|
+
def query(query)
|
10
|
+
@params[:query] = "#{query}"
|
11
|
+
self
|
12
|
+
end
|
13
|
+
|
14
|
+
def resource(resource)
|
15
|
+
if resource == 'movie' then
|
16
|
+
@resource = '/search/movie'
|
17
|
+
elsif resource == 'collection' then
|
18
|
+
@resource = '/search/collection'
|
19
|
+
elsif resource == 'person' then
|
20
|
+
@resource = '/search/person'
|
21
|
+
elsif resource == 'list' then
|
22
|
+
@resource = '/search/list'
|
23
|
+
elsif resource == 'company' then
|
24
|
+
@resource = '/search/company'
|
25
|
+
elsif resource == 'keyword' then
|
26
|
+
@resource = '/search/keyword'
|
27
|
+
end
|
28
|
+
self
|
29
|
+
end
|
30
|
+
|
31
|
+
def filter(conditions)
|
32
|
+
if conditions
|
33
|
+
conditions.each do |key, value|
|
34
|
+
if self.respond_to?(key)
|
35
|
+
self.send(key, value)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
#Sends back main data
|
42
|
+
def fetch()
|
43
|
+
fetch_response['results']
|
44
|
+
end
|
45
|
+
|
46
|
+
#Send back whole response
|
47
|
+
def fetch_response
|
48
|
+
options = @params.merge(Api.config)
|
49
|
+
response = Api.get(@resource, :query => options, :headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json' })
|
50
|
+
response.to_hash
|
51
|
+
end
|
52
|
+
end
|
53
53
|
end
|
data/lib/themoviedb.rb
CHANGED
data/spec/movie_spec.rb
ADDED
@@ -0,0 +1,190 @@
|
|
1
|
+
|
2
|
+
require 'rspec'
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Tmdb::Movie do
|
6
|
+
|
7
|
+
@fields = [:id,:adult,:backdrop_path,:belongs_to_collection,
|
8
|
+
:budget,:genres,:homepage,:imdb_id,:original_title,
|
9
|
+
:overview,:popularity,:poster_path,:production_companies,
|
10
|
+
:production_countries,:release_date,:revenue,:runtime,
|
11
|
+
:spoken_languages,:status,:tagline,:title,:vote_average,
|
12
|
+
:vote_count]
|
13
|
+
|
14
|
+
@fields.each do |field|
|
15
|
+
it { should respond_to field }
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "For a movie" do
|
19
|
+
before(:each) do
|
20
|
+
@movie = Tmdb::Movie
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should return the latest movies" do
|
24
|
+
@movie.latest.should be_true
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should return the upcoming movies" do
|
28
|
+
@movie.upcoming.should be_true
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should show movies that are now playing" do
|
32
|
+
@movie.now_playing.should be_true
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should return popular movies" do
|
36
|
+
@movie.popular.should be_true
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should return top rated movies" do
|
40
|
+
@movie.top_rated.should be_true
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should return alternative titles for an ID" do
|
44
|
+
@movie.alternative_titles(5).should be_true
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should return cast information for an ID" do
|
48
|
+
@movie.casts(5).should be_true
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should return crew for an ID" do
|
52
|
+
@movie.crew(5).should be_true
|
53
|
+
end
|
54
|
+
it "should return keywords for an ID" do
|
55
|
+
@movie.keywords(5).should be_true
|
56
|
+
end
|
57
|
+
it "should return releases for an ID" do
|
58
|
+
@movie.releases(5).should be_true
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should return trailers for an ID" do
|
62
|
+
@movie.trailers(5).should be_true
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should return translations for an ID" do
|
66
|
+
@movie.translations(5).should be_true
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should return similar_movies for an ID" do
|
70
|
+
@movie.similar_movies(5).should be_true
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should return the list the movie belongs to" do
|
74
|
+
@movie.lists(5).should be_true
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should return the changes made" do
|
78
|
+
@movie.changes(5).should be_true
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "For a movie detail" do
|
83
|
+
|
84
|
+
before(:each) do
|
85
|
+
@movie = Tmdb::Movie.detail(22855)
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should return a id" do
|
89
|
+
@movie.id.should == 22855
|
90
|
+
end
|
91
|
+
|
92
|
+
it "should return a adult" do
|
93
|
+
@movie.adult.should == false
|
94
|
+
end
|
95
|
+
|
96
|
+
it "should return a backdrop_path" do
|
97
|
+
@movie.backdrop_path.should == "/mXuqM7ksHW1AJ30AInwJvJTAwut.jpg"
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should return a belongs_to_collection" do
|
101
|
+
@movie.belongs_to_collection.should == {"id"=>51845, "name"=>"DC Universe Animated Original Movies", "poster_path"=>"/qB1Qe5qIbHvr3NsH9xKwCi6WHMn.jpg", "backdrop_path"=>"/3DMJMsy8Yo1LjgFckXIAnHgLo9O.jpg"}
|
102
|
+
end
|
103
|
+
|
104
|
+
it "should return a budget" do
|
105
|
+
@movie.budget.should == 0
|
106
|
+
end
|
107
|
+
|
108
|
+
it "should return genres" do
|
109
|
+
@movie.genres.should == [{"id"=>28, "name"=>"Action"}, {"id"=>12, "name"=>"Adventure"}, {"id"=>16, "name"=>"Animation"}]
|
110
|
+
end
|
111
|
+
|
112
|
+
it "should return homepage" do
|
113
|
+
@movie.homepage.should == "http://www.warnervideo.com/supermanbatmandvd/"
|
114
|
+
end
|
115
|
+
|
116
|
+
it "should return a imdb_id" do
|
117
|
+
@movie.imdb_id.should == "tt1398941"
|
118
|
+
end
|
119
|
+
|
120
|
+
it "should return a original_title" do
|
121
|
+
@movie.original_title.should == "Superman/Batman: Public Enemies"
|
122
|
+
end
|
123
|
+
|
124
|
+
it "should return a overview" do
|
125
|
+
@movie.overview.should == "United States President Lex Luthor uses the oncoming trajectory of a Kryptonite meteor to frame Superman and declare a $1 billion bounty on the heads of the Man of Steel and his ‘partner in crime’, Batman. Heroes and villains alike launch a relentless pursuit of Superman and Batman, who must unite—and recruit help—to try and stave off the action-packed onslaught, stop the meteor Luthors plot."
|
126
|
+
end
|
127
|
+
|
128
|
+
it "should return popularity" do
|
129
|
+
@movie.popularity.should == 1.04449268
|
130
|
+
end
|
131
|
+
|
132
|
+
it "should return poster_path" do
|
133
|
+
@movie.poster_path.should == "/7eaHkUKAzfstt6XQCiXyuKiZUAw.jpg"
|
134
|
+
end
|
135
|
+
|
136
|
+
it "should return production_companies" do
|
137
|
+
@movie.production_companies.should == [{"name"=>"DC Comics", "id"=>429}, {"name"=>"Warner Premiere", "id"=>4811}]
|
138
|
+
end
|
139
|
+
|
140
|
+
it "should return production_countries" do
|
141
|
+
@movie.production_countries.should == [{"iso_3166_1"=>"US", "name"=>"United States of America"}]
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should return release_date" do
|
145
|
+
@movie.release_date.should == "2009-09-29"
|
146
|
+
end
|
147
|
+
|
148
|
+
it "should return revenue" do
|
149
|
+
@movie.revenue.should == 0
|
150
|
+
end
|
151
|
+
|
152
|
+
it "should return a runtime" do
|
153
|
+
@movie.runtime.should == 67
|
154
|
+
end
|
155
|
+
|
156
|
+
it "should return spoken_languages" do
|
157
|
+
@movie.spoken_languages.should == [{"iso_639_1"=>"en", "name"=>"English"}]
|
158
|
+
end
|
159
|
+
|
160
|
+
it "should return status" do
|
161
|
+
@movie.status.should == "Released"
|
162
|
+
end
|
163
|
+
|
164
|
+
it "should return vote_average" do
|
165
|
+
@movie.vote_average.should == 7.4
|
166
|
+
end
|
167
|
+
|
168
|
+
it "should return vote_count" do
|
169
|
+
@movie.vote_count.should == 11
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
describe "For a movies images" do
|
174
|
+
|
175
|
+
before(:each) do
|
176
|
+
@movie = Tmdb::Movie.images(22855)
|
177
|
+
end
|
178
|
+
|
179
|
+
it "should return backdrops" do
|
180
|
+
@movie['backdrops'].should be_true
|
181
|
+
end
|
182
|
+
|
183
|
+
it "should return posters" do
|
184
|
+
@movie['posters'].should be_true
|
185
|
+
end
|
186
|
+
|
187
|
+
end
|
188
|
+
|
189
|
+
|
190
|
+
end
|
data/themoviedb.gemspec
CHANGED
@@ -24,11 +24,11 @@ Gem::Specification.new do |s|
|
|
24
24
|
"lib/themoviedb/people.rb",
|
25
25
|
"lib/themoviedb/resource.rb",
|
26
26
|
"lib/themoviedb/search.rb",
|
27
|
-
"
|
27
|
+
"spec/movie_spec.rb"
|
28
28
|
]
|
29
29
|
s.test_files = [
|
30
|
-
"
|
30
|
+
"spec/movie_spec.rb"
|
31
31
|
]
|
32
32
|
s.require_paths = ["lib"]
|
33
33
|
s.add_dependency('httparty')
|
34
|
-
end
|
34
|
+
end
|
metadata
CHANGED
@@ -1,30 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: themoviedb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.7
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ahmet Abdi
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-07-28 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: httparty
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
description: Provides a simple, easy to use interface for the Movie Database API.
|
@@ -45,30 +42,29 @@ files:
|
|
45
42
|
- lib/themoviedb/people.rb
|
46
43
|
- lib/themoviedb/resource.rb
|
47
44
|
- lib/themoviedb/search.rb
|
48
|
-
-
|
45
|
+
- spec/movie_spec.rb
|
49
46
|
homepage: http://rubygems.org/gems/themoviedb
|
50
47
|
licenses: []
|
48
|
+
metadata: {}
|
51
49
|
post_install_message:
|
52
50
|
rdoc_options: []
|
53
51
|
require_paths:
|
54
52
|
- lib
|
55
53
|
required_ruby_version: !ruby/object:Gem::Requirement
|
56
|
-
none: false
|
57
54
|
requirements:
|
58
|
-
- -
|
55
|
+
- - '>='
|
59
56
|
- !ruby/object:Gem::Version
|
60
57
|
version: '0'
|
61
58
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
62
|
-
none: false
|
63
59
|
requirements:
|
64
|
-
- -
|
60
|
+
- - '>='
|
65
61
|
- !ruby/object:Gem::Version
|
66
62
|
version: '0'
|
67
63
|
requirements: []
|
68
64
|
rubyforge_project: themoviedb
|
69
|
-
rubygems_version:
|
65
|
+
rubygems_version: 2.0.0.rc.2
|
70
66
|
signing_key:
|
71
|
-
specification_version:
|
67
|
+
specification_version: 4
|
72
68
|
summary: A Ruby wrapper for the The Movie Database API.
|
73
69
|
test_files:
|
74
|
-
-
|
70
|
+
- spec/movie_spec.rb
|
data/test/movie_test.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
|
3
|
-
class MovieTest < Test::Unit::TestCase
|
4
|
-
def setup
|
5
|
-
@movie = Tmdb::Movie.detail(22855)
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_case_1
|
9
|
-
assert_equal 22855, @movie.id, "Should return a valid id"
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_case_2
|
13
|
-
assert_equal "tt1398941", @movie.imdb_id, "Should return a valid imdb_id"
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_case_3
|
17
|
-
assert_equal 67, @movie.runtime, "Should return runtime"
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_case_4
|
21
|
-
assert_equal "/mXuqM7ksHW1AJ30AInwJvJTAwut.jpg", @movie.backdrop_path, "Should return backdrop_path"
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|