imdb_parser 0.6.6
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +8 -0
- data/Gemfile +3 -0
- data/History.txt +74 -0
- data/Manifest.txt +29 -0
- data/README.rdoc +108 -0
- data/Rakefile +35 -0
- data/bin/imdb +10 -0
- data/config/website.yml +2 -0
- data/imdb.gemspec +29 -0
- data/lib/imdb_parser/cli.rb +109 -0
- data/lib/imdb_parser/episode.rb +26 -0
- data/lib/imdb_parser/imdb_base.rb +146 -0
- data/lib/imdb_parser/movie.rb +13 -0
- data/lib/imdb_parser/movie_list.rb +41 -0
- data/lib/imdb_parser/search.rb +46 -0
- data/lib/imdb_parser/season.rb +45 -0
- data/lib/imdb_parser/serie.rb +24 -0
- data/lib/imdb_parser/string_extensions.rb +28 -0
- data/lib/imdb_parser/top_250.rb +10 -0
- data/lib/imdb_parser/version.rb +3 -0
- data/lib/imdb_parser.rb +17 -0
- data/script/console +11 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/spec/fixtures/search_kannethirey_thondrinal +14 -0
- data/spec/fixtures/search_killed_wife +14 -0
- data/spec/fixtures/search_star_trek +834 -0
- data/spec/fixtures/top_250 +1433 -0
- data/spec/fixtures/tt0036855 +1255 -0
- data/spec/fixtures/tt0083987 +1261 -0
- data/spec/fixtures/tt0095016 +1286 -0
- data/spec/fixtures/tt0110912 +1262 -0
- data/spec/fixtures/tt0111161 +1272 -0
- data/spec/fixtures/tt0117731 +1246 -0
- data/spec/fixtures/tt0166222 +1806 -0
- data/spec/fixtures/tt0242653 +1254 -0
- data/spec/fixtures/tt0330508 +1581 -0
- data/spec/fixtures/tt0468569 +1305 -0
- data/spec/fixtures/tt1401252 +1109 -0
- data/spec/imdb/cli_spec.rb +49 -0
- data/spec/imdb/movie_spec.rb +204 -0
- data/spec/imdb/search_spec.rb +78 -0
- data/spec/imdb/top_250_spec.rb +21 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +57 -0
- data/tasks/fixtures.rake +15 -0
- data/tasks/rspec.rake +21 -0
- metadata +183 -0
@@ -0,0 +1,49 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
require 'imdb/cli'
|
3
|
+
|
4
|
+
describe Imdb::CLI, "execute" do
|
5
|
+
|
6
|
+
describe "yield search results" do
|
7
|
+
before(:each) do
|
8
|
+
@stdout_io = StringIO.new
|
9
|
+
Imdb::CLI.execute(@stdout_io, ["Star Trek"])
|
10
|
+
@stdout_io.rewind
|
11
|
+
@stdout = @stdout_io.read
|
12
|
+
end
|
13
|
+
|
14
|
+
it "report data" do
|
15
|
+
@stdout.should =~ /0060028/
|
16
|
+
@stdout.should =~ /Star Trek/
|
17
|
+
@stdout.should =~ /1966/
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "yield one movie an ID" do
|
22
|
+
before(:each) do
|
23
|
+
@stdout_io = StringIO.new
|
24
|
+
Imdb::CLI.execute(@stdout_io, ["0117731"])
|
25
|
+
@stdout_io.rewind
|
26
|
+
@stdout = @stdout_io.read
|
27
|
+
end
|
28
|
+
|
29
|
+
it "report data" do
|
30
|
+
@stdout.should =~ /Star Trek\: First Contact \(1996\)/
|
31
|
+
@stdout.should =~ /Jonathan Frakes/
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe "yield one movie with an URL" do
|
36
|
+
before(:each) do
|
37
|
+
@stdout_io = StringIO.new
|
38
|
+
Imdb::CLI.execute(@stdout_io, ["http://akas.imdb.com/title/tt0117731/"])
|
39
|
+
@stdout_io.rewind
|
40
|
+
@stdout = @stdout_io.read
|
41
|
+
end
|
42
|
+
|
43
|
+
it "report data" do
|
44
|
+
@stdout.should =~ /Star Trek\: First Contact \(1996\)/
|
45
|
+
@stdout.should =~ /Jonathan Frakes/
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,204 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper.rb'
|
2
|
+
|
3
|
+
# This test uses "Die hard (1988)" as a testing sample:
|
4
|
+
#
|
5
|
+
# http://akas.imdb.com/title/tt0095016/combined
|
6
|
+
#
|
7
|
+
|
8
|
+
describe "Imdb::Movie" do
|
9
|
+
|
10
|
+
describe "valid movie" do
|
11
|
+
|
12
|
+
before(:each) do
|
13
|
+
# Get Die Hard (1988)
|
14
|
+
@movie = Imdb::Movie.new("0095016")
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should find the cast members" do
|
18
|
+
cast = @movie.cast_members
|
19
|
+
|
20
|
+
cast.should be_an(Array)
|
21
|
+
cast.should include("Bruce Willis")
|
22
|
+
cast.should include("Bonnie Bedelia")
|
23
|
+
cast.should include("Alan Rickman")
|
24
|
+
end
|
25
|
+
|
26
|
+
describe 'fetching a list of imdb actor ids for the cast members' do
|
27
|
+
it 'should not require arguments' do
|
28
|
+
lambda { @movie.cast_member_ids }.should_not raise_error(ArgumentError)
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should not allow arguments' do
|
32
|
+
lambda { @movie.cast_member_ids(:foo) }.should raise_error(ArgumentError)
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should return the imdb actor number for each cast member' do
|
36
|
+
@movie.cast_member_ids.sort.should == [
|
37
|
+
"nm0000246", "nm0000614", "nm0000889", "nm0000952", "nm0001108", "nm0001817", "nm0005598",
|
38
|
+
"nm0033749", "nm0040472", "nm0048326", "nm0072054", "nm0094770", "nm0101088", "nm0112505",
|
39
|
+
"nm0112779", "nm0119594", "nm0127960", "nm0142420", "nm0160690", "nm0162041", "nm0234426",
|
40
|
+
"nm0236525", "nm0239958", "nm0278010", "nm0296791", "nm0319739", "nm0322339", "nm0324231",
|
41
|
+
"nm0326276", "nm0338808", "nm0356114", "nm0370729", "nm0383487", "nm0416429", "nm0421114",
|
42
|
+
"nm0441665", "nm0484360", "nm0484650", "nm0493493", "nm0502959", "nm0503610", "nm0504342",
|
43
|
+
"nm0539639", "nm0546076", "nm0546747", "nm0662568", "nm0669625", "nm0681604", "nm0687270",
|
44
|
+
"nm0688235", "nm0718021", "nm0731114", "nm0748041", "nm0776208", "nm0793363", "nm0852311",
|
45
|
+
"nm0870729", "nm0882139", "nm0902455", "nm0907234", "nm0924636", "nm0936591", "nm0958105",
|
46
|
+
"nm2476262", "nm2565888"
|
47
|
+
].sort
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should find the director" do
|
52
|
+
@movie.director.should be_an(Array)
|
53
|
+
@movie.director.size.should eql(1)
|
54
|
+
@movie.director.first.should =~ /John McTiernan/
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should find the genres" do
|
58
|
+
genres = @movie.genres
|
59
|
+
|
60
|
+
genres.should be_an(Array)
|
61
|
+
genres.should include('Action')
|
62
|
+
genres.should include('Thriller')
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should find the languages" do
|
66
|
+
languages = @movie.languages
|
67
|
+
|
68
|
+
languages.should be_an(Array)
|
69
|
+
languages.size.should eql(3)
|
70
|
+
languages.should include('English')
|
71
|
+
languages.should include('German')
|
72
|
+
languages.should include('Italian')
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should find the countries" do
|
76
|
+
# The Dark Knight (2008)
|
77
|
+
@movie = Imdb::Movie.new("0468569")
|
78
|
+
countries = @movie.countries
|
79
|
+
|
80
|
+
countries.should be_an(Array)
|
81
|
+
countries.size.should eql(2)
|
82
|
+
countries.should include('USA')
|
83
|
+
countries.should include('UK')
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should find the length (in minutes)" do
|
87
|
+
@movie.length.should eql(131)
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should find the plot" do
|
91
|
+
@movie.plot.should eql("New York cop John McClane gives terrorists a dose of their own medicine as they hold hostages in an LA office building.")
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should find the poster" do
|
95
|
+
@movie.poster.should eql("http://ia.media-imdb.com/images/M/MV5BMTIxNTY3NjM0OV5BMl5BanBnXkFtZTcwNzg5MzY0MQ@@.jpg")
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should find the rating" do
|
99
|
+
@movie.rating.should eql(8.3)
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should find number of votes" do
|
103
|
+
@movie.votes.should be_close(210000, 100000)
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should find the title" do
|
107
|
+
@movie.title.should =~ /Die Hard/
|
108
|
+
end
|
109
|
+
|
110
|
+
it "should find the tagline" do
|
111
|
+
@movie.tagline.should =~ /It will blow you through the back wall of the theater/
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should find the year" do
|
115
|
+
@movie.year.should eql(1988)
|
116
|
+
end
|
117
|
+
|
118
|
+
describe "special scenarios" do
|
119
|
+
|
120
|
+
it "should find multiple directors" do
|
121
|
+
# The Matrix Revolutions (2003)
|
122
|
+
movie = Imdb::Movie.new("0242653")
|
123
|
+
|
124
|
+
movie.director.should be_an(Array)
|
125
|
+
movie.director.size.should eql(2)
|
126
|
+
movie.director.should include("Lana Wachowski")
|
127
|
+
movie.director.should include("Andy Wachowski")
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should provide a convenience method to search" do
|
132
|
+
movies = Imdb::Movie.search("Star Trek")
|
133
|
+
movies.should respond_to(:each)
|
134
|
+
movies.each { |movie| movie.should be_an_instance_of(Imdb::Movie) }
|
135
|
+
end
|
136
|
+
|
137
|
+
it "should provide a convenience method to top 250" do
|
138
|
+
movies = Imdb::Movie.top_250
|
139
|
+
movies.should respond_to(:each)
|
140
|
+
movies.each { |movie| movie.should be_an_instance_of(Imdb::Movie) }
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
describe "plot" do
|
145
|
+
it "should find a correct plot when HTML links are present" do
|
146
|
+
movie = Imdb::Movie.new("0083987")
|
147
|
+
movie.plot.should eql("Biography of 'Mahatma Gandhi' , the lawyer who became the famed leader of the Indian revolts against the British rule through his philosophy of non-violent protest.")
|
148
|
+
end
|
149
|
+
|
150
|
+
it "should not have a 'more' link in the plot" do
|
151
|
+
movie = Imdb::Movie.new("0036855")
|
152
|
+
movie.plot.should eql("Years after her aunt was murdered in her home, a young woman moves back into the house with her new husband. However, he has a secret which he will do anything to protect, even if that means driving his wife insane.")
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
describe "mpaa rating" do
|
157
|
+
it "should find the mpaa rating when present" do
|
158
|
+
movie = Imdb::Movie.new("0111161")
|
159
|
+
movie.mpaa_rating.should == "Rated R for language and prison violence (certificate 33087)"
|
160
|
+
end
|
161
|
+
|
162
|
+
it "should be nil when not present" do
|
163
|
+
movie = Imdb::Movie.new("0095016")
|
164
|
+
movie.mpaa_rating.should be_nil
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
describe "with no submitted poster" do
|
169
|
+
|
170
|
+
before(:each) do
|
171
|
+
# Up Is Down (1969)
|
172
|
+
@movie = Imdb::Movie.new("1401252")
|
173
|
+
end
|
174
|
+
|
175
|
+
it "should have a title" do
|
176
|
+
@movie.title(true).should =~ /Up Is Down/
|
177
|
+
end
|
178
|
+
|
179
|
+
it "should have a year" do
|
180
|
+
@movie.year.should eql(1969)
|
181
|
+
end
|
182
|
+
|
183
|
+
it "should return nil as poster url" do
|
184
|
+
@movie.poster.should be_nil
|
185
|
+
end
|
186
|
+
|
187
|
+
it "should return the release date for movies" do
|
188
|
+
movie = Imdb::Movie.new('0111161')
|
189
|
+
# FIXME: this date is geo-localized, leading to false positives
|
190
|
+
movie.release_date.should eql("2 March 1995 (Netherlands)")
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
describe "with an old poster (no @@)" do
|
195
|
+
before(:each) do
|
196
|
+
# Pulp Fiction (1994)
|
197
|
+
@movie = Imdb::Movie.new("0110912")
|
198
|
+
end
|
199
|
+
|
200
|
+
it "should have a poster" do
|
201
|
+
@movie.poster.should eql("http://ia.media-imdb.com/images/M/MV5BMjE0ODk2NjczOV5BMl5BanBnXkFtZTYwNDQ0NDg4.jpg")
|
202
|
+
end
|
203
|
+
end
|
204
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper.rb'
|
2
|
+
|
3
|
+
describe "Imdb::Search with multiple search results" do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@search = Imdb::Search.new("Star Trek")
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should remember the query" do
|
10
|
+
@search.query.should == "Star Trek"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should find > 10 results" do
|
14
|
+
@search.movies.size.should > 10
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should return Imdb::Movie objects only" do
|
18
|
+
@search.movies.each { |movie| movie.should be_an(Imdb::Movie) }
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should not return movies with no title" do
|
22
|
+
@search.movies.each { |movie| movie.title.should_not be_blank }
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should return only the title of the result" do
|
26
|
+
@search.movies.first.title.should eql("Star Trek (1966) (TV series)")
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should return aka titles as well" do
|
30
|
+
alt_titles = [
|
31
|
+
'"Star Trek: TOS" - USA (promotional abbreviation)',
|
32
|
+
'"Star Trek: The Original Series" - USA (informal title)',
|
33
|
+
'"Viaje a las estrellas" - Argentina, Mexico',
|
34
|
+
'"Jornada nas Estrelas" - Brazil',
|
35
|
+
'"La conquista del espacio" - Spain',
|
36
|
+
'"La patrouille du cosmos" - Canada (French title)',
|
37
|
+
'"Raumschiff Enterprise" - West Germany',
|
38
|
+
'"Star Trek" - France',
|
39
|
+
'"Star Trek" - Greece',
|
40
|
+
'"Star Trek" - Italy',
|
41
|
+
'"Star Trek: The Original Series" - Spain',
|
42
|
+
'"Uchuu Daisakusen" - Japan (first season title)',
|
43
|
+
'"Uzay yolu" - Turkey (Turkish title)']
|
44
|
+
|
45
|
+
alt_titles.each { |aka| @search.movies.first.also_known_as.should include(aka) }
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "Imdb::Search with an exact match and no poster" do
|
51
|
+
|
52
|
+
it "should not raise an exception" do
|
53
|
+
lambda {
|
54
|
+
@search = Imdb::Search.new("Kannethirey Thondrinal").movies
|
55
|
+
}.should_not raise_error
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should return the movie id correctly" do
|
59
|
+
@search = Imdb::Search.new("Kannethirey Thondrinal")
|
60
|
+
@search.movies.first.id.should eql("0330508")
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
describe "Imdb::Search with an exact match" do
|
66
|
+
|
67
|
+
before(:each) do
|
68
|
+
@search = Imdb::Search.new("I killed my lesbian wife")
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should find one result" do
|
72
|
+
@search.movies.size.should eql(1)
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should have the corrected title" do
|
76
|
+
@search.movies.first.title.should =~ /I Killed My Lesbian Wife/i
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../spec_helper"
|
2
|
+
|
3
|
+
describe Imdb::Top250 do
|
4
|
+
before(:each) do
|
5
|
+
@movies = Imdb::Top250.new.movies
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should be a list of movies" do
|
9
|
+
@movies.each { |movie| movie.should be_an_instance_of(Imdb::Movie) }
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should return the top 250 movies from IMDB.com" do
|
13
|
+
@movies.size.should == 250
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should provide array like access to the movies" do
|
17
|
+
@first = @movies.first
|
18
|
+
@first.title.should == "The Shawshank Redemption"
|
19
|
+
@first.genres.should include("Drama")
|
20
|
+
end
|
21
|
+
end
|
data/spec/spec.opts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
# By default if you have the FakeWeb gem installed when the specs are
|
2
|
+
# run they will hit recorded responses. However, if you don't have
|
3
|
+
# the FakeWeb gem installed or you set the environment variable
|
4
|
+
# LIVE_TEST then the tests will hit the live site IMDB.com.
|
5
|
+
#
|
6
|
+
# Having both methods available for testing allows you to quickly
|
7
|
+
# refactor and add features, while also being able to make sure that
|
8
|
+
# no changes to the IMDB.com interface have affected the parser.
|
9
|
+
###
|
10
|
+
|
11
|
+
begin
|
12
|
+
require 'spec'
|
13
|
+
rescue LoadError
|
14
|
+
require 'rubygems'
|
15
|
+
gem 'rspec'
|
16
|
+
require 'spec'
|
17
|
+
end
|
18
|
+
|
19
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
20
|
+
require 'imdb'
|
21
|
+
|
22
|
+
def read_fixture(path)
|
23
|
+
File.read(File.expand_path(File.join(File.dirname(__FILE__), "fixtures", path)))
|
24
|
+
end
|
25
|
+
|
26
|
+
IMDB_SAMPLES = {
|
27
|
+
"http://akas.imdb.com:80/find?q=Kannethirey+Thondrinal;s=tt" => "search_kannethirey_thondrinal",
|
28
|
+
"http://akas.imdb.com/title/tt0330508/?fr=c2M9MXxsbT01MDB8ZmI9dXx0dD0xfG14PTIwfGh0bWw9MXxjaD0xfGNvPTF8cG49MHxmdD0xfGt3PTF8cXM9S2FubmV0aGlyZXkgVGhvbmRyaW5hbHxzaXRlPWFrYXxxPUthbm5ldGhpcmV5IFRob25kcmluYWx8bm09MQ__;fc=1;ft=1" => "tt0330508",
|
29
|
+
"http://akas.imdb.com:80/find?q=I+killed+my+lesbian+wife;s=tt" => "search_killed_wife",
|
30
|
+
"http://akas.imdb.com:80/find?q=Star+Trek;s=tt" => "search_star_trek",
|
31
|
+
"http://akas.imdb.com:80/title/tt0117731/combined" => "tt0117731",
|
32
|
+
"http://akas.imdb.com:80/title/tt0095016/combined" => "tt0095016",
|
33
|
+
"http://akas.imdb.com:80/title/tt0242653/combined" => "tt0242653",
|
34
|
+
"http://akas.imdb.com/title/tt0166222/?fr=c2M9MXxsbT01MDB8ZmI9dXx0dD0xfG14PTIwfGh0bWw9MXxjaD0xfGNvPTF8cG49MHxmdD0xfGt3PTF8cXM9SSBraWxsZWQgbXkgbGVzYmlhbiB3aWZlfHNpdGU9YWthfHE9SSBraWxsZWQgbXkgbGVzYmlhbiB3aWZlfG5tPTE_;fc=1;ft=7" => "tt0166222",
|
35
|
+
"http://akas.imdb.com:80/chart/top" => "top_250",
|
36
|
+
"http://akas.imdb.com/title/tt0111161/combined" => "tt0111161",
|
37
|
+
"http://akas.imdb.com/title/tt1401252/combined" => "tt1401252",
|
38
|
+
"http://akas.imdb.com/title/tt0083987/combined" => "tt0083987",
|
39
|
+
"http://akas.imdb.com/title/tt0036855/combined" => "tt0036855",
|
40
|
+
"http://akas.imdb.com/title/tt0110912/combined" => "tt0110912",
|
41
|
+
"http://akas.imdb.com/title/tt0468569/combined" => "tt0468569",
|
42
|
+
}
|
43
|
+
|
44
|
+
unless ENV['LIVE_TEST']
|
45
|
+
begin
|
46
|
+
require 'rubygems'
|
47
|
+
require 'fakeweb'
|
48
|
+
|
49
|
+
FakeWeb.allow_net_connect = false
|
50
|
+
IMDB_SAMPLES.each do |url, response|
|
51
|
+
FakeWeb.register_uri(:get, url, :response => read_fixture(response))
|
52
|
+
end
|
53
|
+
rescue LoadError
|
54
|
+
puts "Could not load FakeWeb, these tests will hit IMDB.com"
|
55
|
+
puts "You can run `gem install fakeweb` to stub out the responses."
|
56
|
+
end
|
57
|
+
end
|
data/tasks/fixtures.rake
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
namespace :fixtures do
|
2
|
+
desc "Refresh spec fixtures with fresh data from IMDB.com"
|
3
|
+
task :refresh do
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec/spec_helper")
|
5
|
+
|
6
|
+
IMDB_SAMPLES.each_pair do |url, fixture|
|
7
|
+
page = `curl -is #{url}`
|
8
|
+
|
9
|
+
File.open(File.expand_path(File.dirname(__FILE__) + "/../spec/fixtures/#{fixture}"), 'w') do |f|
|
10
|
+
f.write(page)
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/tasks/rspec.rake
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
begin
|
2
|
+
require 'spec'
|
3
|
+
rescue LoadError
|
4
|
+
require 'rubygems'
|
5
|
+
require 'spec'
|
6
|
+
end
|
7
|
+
begin
|
8
|
+
require 'spec/rake/spectask'
|
9
|
+
rescue LoadError
|
10
|
+
puts <<-EOS
|
11
|
+
To use rspec for testing you must install rspec gem:
|
12
|
+
gem install rspec
|
13
|
+
EOS
|
14
|
+
exit(0)
|
15
|
+
end
|
16
|
+
|
17
|
+
desc "Run the specs under spec/models"
|
18
|
+
Spec::Rake::SpecTask.new do |t|
|
19
|
+
t.spec_opts = ['--options', "spec/spec.opts"]
|
20
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,183 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: imdb_parser
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.6.6
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Matthieu Lamarque
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-11-06 00:00:00.000000000 +01:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: hpricot
|
17
|
+
requirement: &2160330320 !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ~>
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.8.4
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *2160330320
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: rdoc
|
28
|
+
requirement: &2160329680 !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: *2160329680
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: hanna
|
39
|
+
requirement: &2160328780 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '0'
|
45
|
+
type: :development
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *2160328780
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: gokdok
|
50
|
+
requirement: &2160328140 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
type: :development
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: *2160328140
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: rspec
|
61
|
+
requirement: &2160324020 !ruby/object:Gem::Requirement
|
62
|
+
none: false
|
63
|
+
requirements:
|
64
|
+
- - ~>
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 1.3.2
|
67
|
+
type: :development
|
68
|
+
prerelease: false
|
69
|
+
version_requirements: *2160324020
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: fakeweb
|
72
|
+
requirement: &2160323540 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: *2160323540
|
81
|
+
description: Easily use Ruby or the command line to find Movie, Serie information
|
82
|
+
on IMDB.com.
|
83
|
+
email:
|
84
|
+
- lamarque.matthieu@gmail.com
|
85
|
+
executables:
|
86
|
+
- imdb
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- .gitignore
|
91
|
+
- Gemfile
|
92
|
+
- History.txt
|
93
|
+
- Manifest.txt
|
94
|
+
- README.rdoc
|
95
|
+
- Rakefile
|
96
|
+
- bin/imdb
|
97
|
+
- config/website.yml
|
98
|
+
- imdb.gemspec
|
99
|
+
- lib/imdb_parser.rb
|
100
|
+
- lib/imdb_parser/cli.rb
|
101
|
+
- lib/imdb_parser/episode.rb
|
102
|
+
- lib/imdb_parser/imdb_base.rb
|
103
|
+
- lib/imdb_parser/movie.rb
|
104
|
+
- lib/imdb_parser/movie_list.rb
|
105
|
+
- lib/imdb_parser/search.rb
|
106
|
+
- lib/imdb_parser/season.rb
|
107
|
+
- lib/imdb_parser/serie.rb
|
108
|
+
- lib/imdb_parser/string_extensions.rb
|
109
|
+
- lib/imdb_parser/top_250.rb
|
110
|
+
- lib/imdb_parser/version.rb
|
111
|
+
- script/console
|
112
|
+
- script/destroy
|
113
|
+
- script/generate
|
114
|
+
- spec/fixtures/search_kannethirey_thondrinal
|
115
|
+
- spec/fixtures/search_killed_wife
|
116
|
+
- spec/fixtures/search_star_trek
|
117
|
+
- spec/fixtures/top_250
|
118
|
+
- spec/fixtures/tt0036855
|
119
|
+
- spec/fixtures/tt0083987
|
120
|
+
- spec/fixtures/tt0095016
|
121
|
+
- spec/fixtures/tt0110912
|
122
|
+
- spec/fixtures/tt0111161
|
123
|
+
- spec/fixtures/tt0117731
|
124
|
+
- spec/fixtures/tt0166222
|
125
|
+
- spec/fixtures/tt0242653
|
126
|
+
- spec/fixtures/tt0330508
|
127
|
+
- spec/fixtures/tt0468569
|
128
|
+
- spec/fixtures/tt1401252
|
129
|
+
- spec/imdb/cli_spec.rb
|
130
|
+
- spec/imdb/movie_spec.rb
|
131
|
+
- spec/imdb/search_spec.rb
|
132
|
+
- spec/imdb/top_250_spec.rb
|
133
|
+
- spec/spec.opts
|
134
|
+
- spec/spec_helper.rb
|
135
|
+
- tasks/fixtures.rake
|
136
|
+
- tasks/rspec.rake
|
137
|
+
has_rdoc: true
|
138
|
+
homepage: http://github.com/mlamarque/imdb
|
139
|
+
licenses: []
|
140
|
+
post_install_message:
|
141
|
+
rdoc_options: []
|
142
|
+
require_paths:
|
143
|
+
- lib
|
144
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
+
none: false
|
152
|
+
requirements:
|
153
|
+
- - ! '>='
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '0'
|
156
|
+
requirements: []
|
157
|
+
rubyforge_project: imdb
|
158
|
+
rubygems_version: 1.6.2
|
159
|
+
signing_key:
|
160
|
+
specification_version: 3
|
161
|
+
summary: Access to Movie, Serie on Imdb.com
|
162
|
+
test_files:
|
163
|
+
- spec/fixtures/search_kannethirey_thondrinal
|
164
|
+
- spec/fixtures/search_killed_wife
|
165
|
+
- spec/fixtures/search_star_trek
|
166
|
+
- spec/fixtures/top_250
|
167
|
+
- spec/fixtures/tt0036855
|
168
|
+
- spec/fixtures/tt0083987
|
169
|
+
- spec/fixtures/tt0095016
|
170
|
+
- spec/fixtures/tt0110912
|
171
|
+
- spec/fixtures/tt0111161
|
172
|
+
- spec/fixtures/tt0117731
|
173
|
+
- spec/fixtures/tt0166222
|
174
|
+
- spec/fixtures/tt0242653
|
175
|
+
- spec/fixtures/tt0330508
|
176
|
+
- spec/fixtures/tt0468569
|
177
|
+
- spec/fixtures/tt1401252
|
178
|
+
- spec/imdb/cli_spec.rb
|
179
|
+
- spec/imdb/movie_spec.rb
|
180
|
+
- spec/imdb/search_spec.rb
|
181
|
+
- spec/imdb/top_250_spec.rb
|
182
|
+
- spec/spec.opts
|
183
|
+
- spec/spec_helper.rb
|