imdb_parser 0.6.6
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.
- 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
|