tmdb 0.4.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +50 -9
- data/VERSION +1 -1
- data/lib/tmdb/movie.rb +23 -7
- data/test/tmdb/test_movie.rb +24 -6
- data/tmdb.gemspec +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c4fe9618ff4b7152cac2978ed46e57e79c861bdc
|
4
|
+
data.tar.gz: 00d95a2699ad05c7a4e143d81a0ae765c2b45898
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 172caf23043eeee0a89f45700f9f0b4e4b0347ca0fc1e4b50080b082b770c7c576add80d595d18f30de48adf6b065a586a0d55e6272b0bde6df928aac6307f17
|
7
|
+
data.tar.gz: be36f75874a01e9134b336b693909947a32c34b82cf9225312c5eebe497cc4b291686967f3c56a92ad81754a0ead3c0468455e0ad1bd124e6d70657384cdf11b
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
[](http://badge.fury.io/rb/tmdb)
|
4
4
|
|
5
|
-
Simple ruby wrapper for _The MovieDB_ based on HTTParty
|
5
|
+
Simple ruby wrapper for _The MovieDB_ based on HTTParty (starting to transform into more of an abstraction than a wrapper: http://wynnnetherland.com/journal/what-makes-a-good-api-wrapper)
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -22,10 +22,12 @@ Current available:
|
|
22
22
|
* ::config
|
23
23
|
* ::genres(source)
|
24
24
|
* [Movie](#movies)
|
25
|
-
* ::title_search
|
26
25
|
* ::search
|
26
|
+
* ::advanced_search
|
27
27
|
* ::id
|
28
28
|
* ::popular
|
29
|
+
* #poster(size)
|
30
|
+
* #backdrop(size)
|
29
31
|
* [TV](#tv)
|
30
32
|
* ::search
|
31
33
|
* ::id
|
@@ -64,10 +66,14 @@ TMDB::API.genres("tv")
|
|
64
66
|
|
65
67
|
### Movies
|
66
68
|
|
69
|
+
#### Class Methods
|
70
|
+
|
71
|
+
##### ::search
|
72
|
+
|
67
73
|
```ruby
|
68
|
-
# To search for movies by title (returns an array of
|
69
|
-
movies = TMDB::Movie.
|
70
|
-
# => <
|
74
|
+
# To search for movies by title (returns an array of TMDB:Movie objects)
|
75
|
+
movies = TMDB::Movie.search('the matrix')
|
76
|
+
# => <TMDB::Movie "adult"=>false,
|
71
77
|
"backdrop_path"=>"/7u3pxc0K1wx32IleAkLv78MKgrw.jpg",
|
72
78
|
"id"=>603,
|
73
79
|
"original_title"=>"The Matrix",
|
@@ -81,14 +87,21 @@ movies = TMDB::Movie.title_search(query: 'the matrix')
|
|
81
87
|
# Then you can pull the data from the results, ie.
|
82
88
|
movies.first.title
|
83
89
|
# => "The Matrix"
|
90
|
+
```
|
91
|
+
|
92
|
+
##### ::advanced_search
|
84
93
|
|
85
|
-
|
86
|
-
|
94
|
+
```ruby
|
95
|
+
# Use .advanced_search to find by various parameters (ie. release date)
|
96
|
+
movies = TMDB::Movie.advanced_search('release_date.gte' => '2014-01-01',
|
87
97
|
'release_date.lte' => (Time.now.strftime("%Y-%m-%d")),
|
88
98
|
primary_release_year: 2014)
|
89
|
-
# => Array of <
|
99
|
+
# => Array of <TMDB::Movie>s
|
100
|
+
```
|
90
101
|
|
102
|
+
##### ::id
|
91
103
|
|
104
|
+
```ruby
|
92
105
|
# To pull all the information for a particular movie, run an id search:
|
93
106
|
movie = TMDB::Movie.id(550)
|
94
107
|
# => <Hashie::Mash "adult"=>false,
|
@@ -105,14 +118,42 @@ movie = TMDB::Movie.id(550)
|
|
105
118
|
"original_title"=>"Fight Club",
|
106
119
|
"overview"=>
|
107
120
|
"A ticking-time-bomb insomniac and a slippery soap salesman channel primal male aggression into a shocking new form of therapy. Their concept catches on, with underground \"fight clubs\" forming in every town, until an eccentric gets in the way and ignites an out-of-control spiral toward oblivion."...>
|
121
|
+
```
|
108
122
|
|
123
|
+
##### ::popular
|
124
|
+
|
125
|
+
```ruby
|
109
126
|
# Use .popular to final recent popular movies (according to The Movie Database)
|
110
127
|
movies = TMDB::Movie.popular
|
111
128
|
# => Array of <Hashie::Mash> movies
|
112
129
|
```
|
113
130
|
|
131
|
+
#### Instance Methods
|
132
|
+
|
133
|
+
##### #poster
|
134
|
+
|
135
|
+
```ruby
|
136
|
+
# Use .poster to return a particular TMDB::Movie's poster path, default is 'original'
|
137
|
+
# Poster Sizes: ["w92", "w154", "w185", "w342", "w500", "w780", "original"]
|
138
|
+
TMDB::Movie.id(550).poster
|
139
|
+
# => http://image.tmdb.org/t/p/original/2lECpi35Hnbpa4y46JX0aY3AWTy.jpg
|
140
|
+
```
|
141
|
+
|
142
|
+
##### #backdrop
|
143
|
+
|
144
|
+
```ruby
|
145
|
+
# Same as #poster but for backdrops
|
146
|
+
# Backdrop Sizes: ["w300", "w780", "w1280", "original"]
|
147
|
+
TMDB::Movie.id(550).backdrop('w300')
|
148
|
+
# => http://image.tmdb.org/t/p/w300/hNFMawyNDWZKKHU4GYCBz1krsRM.jpg
|
149
|
+
```
|
150
|
+
|
114
151
|
### TV
|
115
152
|
|
153
|
+
#### Class Methods
|
154
|
+
|
155
|
+
##### ::search
|
156
|
+
|
116
157
|
```ruby
|
117
158
|
# Similar to Movies
|
118
159
|
TMDB::TV.search(query: 'walking dead')
|
@@ -135,7 +176,7 @@ TMDB::TV.search(query: 'walking dead')
|
|
135
176
|
"name"=>"The Walking Dead" ...>
|
136
177
|
```
|
137
178
|
|
138
|
-
|
179
|
+
## More Examples
|
139
180
|
|
140
181
|
You can look through the tests for more examples
|
141
182
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.0
|
data/lib/tmdb/movie.rb
CHANGED
@@ -2,22 +2,38 @@
|
|
2
2
|
# TODO: Review http://ruby.learncodethehardway.org/book/ex44.html first, figure out if we ant to use inheritance or composition
|
3
3
|
|
4
4
|
module TMDB
|
5
|
-
class Movie
|
6
|
-
|
5
|
+
class Movie < Hashie::Mash
|
6
|
+
|
7
|
+
def poster(size='original')
|
8
|
+
# Poster Sizes: ["w92", "w154", "w185", "w342", "w500", "w780", "original"]
|
9
|
+
# Find latest list at TMDB::API.config.poster_sizes
|
10
|
+
config = TMDB::API.config
|
11
|
+
config.images.base_url + size + self.poster_path
|
12
|
+
end
|
13
|
+
|
14
|
+
def backdrop(size='original')
|
15
|
+
# Backdrop Sizes: ["w300", "w780", "w1280", "original"]
|
16
|
+
# Find latest list at TMDB::API.config.backdrop_sizes
|
17
|
+
config = TMDB::API.config
|
18
|
+
config.images.base_url + size + self.backdrop_path
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.search(title, options = {})
|
7
22
|
# Accepted parameters:
|
8
23
|
# :page, :include_adult (true / false), :year
|
9
|
-
options.merge!(api_key: TMDB::API.api_key
|
24
|
+
options.merge!(api_key: TMDB::API.api_key,
|
25
|
+
query: title)
|
10
26
|
results = TMDB::API.get("/3/search/movie", query: options)['results']
|
11
27
|
movies = []
|
12
28
|
results.each do |result|
|
13
|
-
movies.push(
|
29
|
+
movies.push(TMDB::Movie.new(result))
|
14
30
|
end
|
15
31
|
return movies
|
16
32
|
end
|
17
33
|
|
18
34
|
# language (ISO_639_1: 'en')
|
19
35
|
# country (ISO_3166_1: 'US')
|
20
|
-
def self.
|
36
|
+
def self.advanced_search(options = {})
|
21
37
|
# US-snobbish
|
22
38
|
options.merge!(api_key: TMDB::API.api_key,
|
23
39
|
language: 'en',
|
@@ -32,7 +48,7 @@ module TMDB
|
|
32
48
|
|
33
49
|
def self.id(movie_id)
|
34
50
|
options = { api_key: TMDB::API.api_key }
|
35
|
-
|
51
|
+
TMDB::Movie.new(TMDB::API.get("/3/movie/#{movie_id}", query: options))
|
36
52
|
# movie.title = "Fight Club"
|
37
53
|
end
|
38
54
|
|
@@ -41,7 +57,7 @@ module TMDB
|
|
41
57
|
results = TMDB::API.get("/3/movie/popular", query: options)['results']
|
42
58
|
movies = []
|
43
59
|
results.each do |result|
|
44
|
-
movies.push(
|
60
|
+
movies.push(TMDB::Movie.new(result))
|
45
61
|
end
|
46
62
|
return movies
|
47
63
|
end
|
data/test/tmdb/test_movie.rb
CHANGED
@@ -8,19 +8,19 @@ describe TMDB::Movie do
|
|
8
8
|
TMDB::API.api_key = API_KEY
|
9
9
|
|
10
10
|
# TMDB::Movie::title_search(query, page, etc.)
|
11
|
-
describe "
|
11
|
+
describe "::search" do
|
12
12
|
it "should return correct results" do
|
13
|
-
movies = TMDB::Movie.
|
13
|
+
movies = TMDB::Movie.search('the matrix')
|
14
14
|
|
15
15
|
movies.first.title.must_equal "The Matrix"
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
# TMDB::Movie::search(release_date.gte, page, etc.)
|
20
|
-
describe "
|
20
|
+
describe "::advanced_search('...')" do
|
21
21
|
|
22
22
|
it "should return recent results" do
|
23
|
-
movies = TMDB::Movie.
|
23
|
+
movies = TMDB::Movie.advanced_search('release_date.gte' => '2014-01-01',
|
24
24
|
'release_date.lte' => (Time.now.strftime("%Y-%m-%d")),
|
25
25
|
primary_release_year: 2014)
|
26
26
|
|
@@ -33,7 +33,7 @@ describe TMDB::Movie do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
# TMDB::Movie::id(movie_id)
|
36
|
-
describe "
|
36
|
+
describe "::id" do
|
37
37
|
|
38
38
|
let (:movie) { TMDB::Movie.id(550) }
|
39
39
|
|
@@ -49,11 +49,29 @@ describe TMDB::Movie do
|
|
49
49
|
end
|
50
50
|
|
51
51
|
# TMDB::Movie::popular
|
52
|
-
describe "
|
52
|
+
describe "::popular" do
|
53
53
|
it "should return a list of popular results" do
|
54
54
|
movies = TMDB::Movie.popular
|
55
55
|
movies.must_be_instance_of Array
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
+
# TMDB::Movie#poster
|
60
|
+
describe "#poster" do
|
61
|
+
let (:movie) { TMDB::Movie.id(550) }
|
62
|
+
|
63
|
+
it "should return the poster URL" do
|
64
|
+
movie.poster.wont_be_nil
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# TMDB::Movie#backdrop
|
69
|
+
describe "#backdrop" do
|
70
|
+
let (:movie) { TMDB::Movie.id(550) }
|
71
|
+
|
72
|
+
it "should return the poster URL" do
|
73
|
+
movie.backdrop('w300').wont_be_nil
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
59
77
|
end
|
data/tmdb.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: tmdb 0.
|
5
|
+
# stub: tmdb 0.6.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "tmdb"
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.6.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Cody Barr"]
|
14
|
-
s.date = "2014-07-
|
14
|
+
s.date = "2014-07-26"
|
15
15
|
s.description = "tmdb is a simple ruby wrapper for The Movie Database. Exposes all TMDB API operations"
|
16
16
|
s.email = "cody.barr@gmail.com"
|
17
17
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tmdb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cody Barr
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|