movie_searcher 0.1.4 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +51 -52
- data/Rakefile +2 -56
- data/lib/imdb_party.rb +1 -1
- data/lib/imdb_party/imdb.rb +34 -7
- data/lib/imdb_party/movie.rb +1 -1
- data/lib/movie_searcher.rb +23 -27
- data/movie_searcher.gemspec +8 -9
- data/spec/movie_searcher_spec.rb +2 -18
- metadata +8 -30
data/README.md
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
-
# MovieSearcher
|
2
|
-
|
3
|
-
## What is MovieSearcher
|
1
|
+
# MovieSearcher
|
4
2
|
|
5
3
|
MovieSearcher makes it possible to get information about a movie.
|
6
4
|
It uses IMDB's API that their iPhone applications rely on.
|
7
5
|
|
8
6
|
It's build on top of [maddox's](https://github.com/maddox) [imdb-party](https://github.com/maddox/imdb-party) but adds some extra functionality and bugs fixes.
|
9
7
|
|
8
|
+
Follow me on [Twitter](http://twitter.com/linusoleander) for more info and updates.
|
9
|
+
|
10
|
+
Take a look at [this](https://github.com/oleander/Movies) gem if you want to use [IMDbAPI.com](http://imdbapi.com) instead of [IMDb.com](http://imdb.com/) as source.
|
11
|
+
|
10
12
|
## What makes this gem so awesome?
|
11
13
|
|
12
14
|
MovieSearcher has a really cool feature (*method*) called `find_by_release_name` that makes it possible to search for a movie based on the release name.
|
@@ -14,82 +16,79 @@ You can for example specify ***Heartbreaker 2010 LIMITED DVDRip XviD-SUBMERGE***
|
|
14
16
|
|
15
17
|
## So how do I use it?
|
16
18
|
|
17
|
-
### Start by installing the gem
|
18
|
-
|
19
|
-
sudo gem install movie_searcher
|
20
|
-
Start `irb` and include the gem, `require 'movie_searcher'`
|
21
|
-
|
22
|
-
### Search for a movie by title
|
23
|
-
|
24
|
-
$ MovieSearcher.find_by_title("The Dark Knight")
|
25
|
-
=> [#<ImdbParty::Movie:0x1012a5858 @imdb_id="tt0468569", @year="2008", @title="The Dark Knight" ... >, ...]
|
26
|
-
|
27
19
|
### Get a movie by its imdb id
|
28
20
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
21
|
+
```` ruby
|
22
|
+
movie = MovieSearcher.find_movie_by_id("tt0468569")
|
23
|
+
movie.title
|
24
|
+
# => "The Dark Knight"
|
25
|
+
movie.rating
|
26
|
+
# => 8.9
|
27
|
+
movie.certification
|
28
|
+
# => "PG-13"
|
29
|
+
````
|
30
|
+
|
37
31
|
### Find a movie based on the release name
|
38
32
|
|
39
|
-
|
40
|
-
|
41
|
-
|
33
|
+
```` ruby
|
34
|
+
MovieSearcher.find_by_release_name("Heartbreaker 2010 LIMITED DVDRip XviD-SUBMERGE").imdb_id
|
35
|
+
# => tt1465487
|
36
|
+
````
|
37
|
+
|
42
38
|
### Find a movie based on a folder
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
39
|
+
|
40
|
+
```` ruby
|
41
|
+
MovieSearcher.find_by_folder('~/Downloads/Its.Kind.of.a.Funny.Story.2010.DVDRip.XviD-AMIABLE')
|
42
|
+
# => #<ImdbParty::Movie:0x10198a060 ... >
|
43
|
+
````
|
44
|
+
|
47
45
|
### Find a movie based on a file containing and imdb link
|
48
46
|
|
49
|
-
|
47
|
+
This method does not take any folder that starts with tilde **~** sign.
|
50
48
|
|
51
|
-
|
52
|
-
|
53
|
-
|
49
|
+
```` ruby
|
50
|
+
MovieSearcher.find_by_file('/Users/linus/Downloads/Its.Kind.of.a.Funny.Story.2010.DVDRip.XviD-AMIABLE/its.kind.of.a.funny.story.2010.dvdrip.xvid-amiable.nfo')
|
51
|
+
# => #<ImdbParty::Movie:0x10198a060 ... >
|
52
|
+
````
|
53
|
+
|
54
54
|
### Find a movie based on a downloaded thingy (folder or file)
|
55
55
|
|
56
56
|
This method takes anything that you have download and tries to figure out what movie you're talking about.
|
57
57
|
If a folder is passed it will list all text files in the folder and try to find an imdb link.
|
58
58
|
If no link or no files are found, it will fall back on the name of the folder.
|
59
|
-
|
60
|
-
|
61
|
-
|
59
|
+
|
60
|
+
```` ruby
|
61
|
+
MovieSearcher.find_by_download('/Users/linus/Downloads/some_thing_unknown')
|
62
|
+
# => #<ImdbParty::Movie:0x10198a060 ... >
|
63
|
+
````
|
62
64
|
|
63
65
|
### Find the top 250 movies of all time
|
64
66
|
|
65
|
-
|
66
|
-
|
67
|
+
```` ruby
|
68
|
+
MovieSearcher.top_250
|
69
|
+
# => [#<ImdbParty::Movie:0x10178ef68 @imdb_id="tt0111161", @poster_url="http://ia.media-imdb.com/images/M/MV5BMTM2NjEyNzk2OF5BMl5BanBnXkFtZTcwNjcxNjUyMQ@@._V1_.jpg" ... >, ...]
|
70
|
+
````
|
67
71
|
|
68
72
|
### Get the currently popular tv shows
|
69
73
|
|
70
|
-
|
71
|
-
|
72
|
-
|
74
|
+
```` ruby
|
75
|
+
MovieSearcher.popular_shows
|
76
|
+
# => [#<ImdbParty::Movie:0x101ff2858 @imdb_id="tt1327801", @poster_url="http://ia.media-imdb.com/images/M/MV5BMTYxMjYxNjQxNl5BMl5BanBnXkFtZTcwNTU5Nzk4Mw@@._V1_.jpg", @year="2009", @title="Glee">, ... ]
|
77
|
+
````
|
78
|
+
|
73
79
|
### Some configure alternatives
|
74
80
|
|
75
81
|
You can pass some options to the `find_by_release_name` method to specify how it should behave.
|
76
82
|
|
77
83
|
Here is an example.
|
78
84
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
- ** :details ** (Boolean) By default, the `find_by_release_name` only returns the most basic information about a movie, like *imdb_id*, *title* and *year*. If you set this to true, it will do another request to IMDB and get the casts, actors, rating and so on.
|
83
|
-
|
84
|
-
** The option param can't be passed to `find_by_title` **
|
85
|
-
|
86
|
-
** `find_movie_by_id` don't require that you pass the `:details` option to get all data **
|
85
|
+
```` ruby
|
86
|
+
MovieSearcher.find_by_release_name("Heartbreaker 2010 LIMITED DVDRip XviD-SUBMERGE")
|
87
|
+
````
|
87
88
|
|
88
89
|
## What is being returned?
|
89
90
|
|
90
|
-
|
91
|
-
|
92
|
-
These are the accessors of `ImdbParty::Movie`
|
91
|
+
These are the accessors of `ImdbParty::Movie`, the object being returned from `find_by_release_name` for example.
|
93
92
|
|
94
93
|
- **imdb_id** (String) The imdb id of the movie.
|
95
94
|
- **title** (String) The title of the movie.
|
@@ -121,4 +120,4 @@ The `actors`, `writers` and `directors` accessors returns an `ImdbParty::Person`
|
|
121
120
|
|
122
121
|
## Requirements
|
123
122
|
|
124
|
-
|
123
|
+
*MovieSearcher* is tested in OS X 10.6.6, 10.6.7 using Ruby 1.8.7 and 1.9.2
|
data/Rakefile
CHANGED
@@ -1,56 +1,2 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "imdb_party"
|
8
|
-
gem.summary = %Q{IMDB client using the IMDB API that their iPhone app uses}
|
9
|
-
gem.description = %Q{IMDB client using the IMDB API that their iPhone app uses}
|
10
|
-
gem.email = "jon@mustacheinc.com"
|
11
|
-
gem.homepage = "http://github.com/maddox/imdb_party"
|
12
|
-
gem.authors = ["Jon Maddox"]
|
13
|
-
gem.add_development_dependency "shoulda"
|
14
|
-
gem.add_dependency "httparty"
|
15
|
-
end
|
16
|
-
rescue LoadError
|
17
|
-
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
18
|
-
end
|
19
|
-
|
20
|
-
require 'rake/testtask'
|
21
|
-
Rake::TestTask.new(:test) do |test|
|
22
|
-
test.libs << 'lib' << 'test'
|
23
|
-
test.pattern = 'test/**/*_test.rb'
|
24
|
-
test.verbose = true
|
25
|
-
end
|
26
|
-
|
27
|
-
begin
|
28
|
-
require 'rcov/rcovtask'
|
29
|
-
Rcov::RcovTask.new do |test|
|
30
|
-
test.libs << 'test'
|
31
|
-
test.pattern = 'test/**/*_test.rb'
|
32
|
-
test.verbose = true
|
33
|
-
end
|
34
|
-
rescue LoadError
|
35
|
-
task :rcov do
|
36
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
task :test => :check_dependencies
|
41
|
-
|
42
|
-
task :default => :test
|
43
|
-
|
44
|
-
require 'rake/rdoctask'
|
45
|
-
Rake::RDocTask.new do |rdoc|
|
46
|
-
if File.exist?('VERSION')
|
47
|
-
version = File.read('VERSION')
|
48
|
-
else
|
49
|
-
version = ""
|
50
|
-
end
|
51
|
-
|
52
|
-
rdoc.rdoc_dir = 'rdoc'
|
53
|
-
rdoc.title = "imdb_party #{version}"
|
54
|
-
rdoc.rdoc_files.include('README*')
|
55
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
56
|
-
end
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
data/lib/imdb_party.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'rubygems'
|
1
2
|
require 'httparty'
|
2
3
|
|
3
4
|
directory = File.expand_path(File.dirname(__FILE__))
|
@@ -5,4 +6,3 @@ require File.join(directory, 'imdb_party', 'httparty_icebox')
|
|
5
6
|
require File.join(directory, 'imdb_party', 'imdb')
|
6
7
|
require File.join(directory, 'imdb_party', 'movie')
|
7
8
|
require File.join(directory, 'imdb_party', 'person')
|
8
|
-
|
data/lib/imdb_party/imdb.rb
CHANGED
@@ -5,18 +5,39 @@ module ImdbParty
|
|
5
5
|
cache :store => 'file', :timeout => 120, :location => Dir.tmpdir
|
6
6
|
|
7
7
|
base_uri 'app.imdb.com'
|
8
|
-
default_params = {"api" => "v1", "appid" => "iphone1", "locale" => "en_US", "timestamp" => Time.now.to_i, "sig" => "heres my signature"}
|
9
8
|
|
9
|
+
def initialize(options={})
|
10
|
+
self.class.base_uri 'anonymouse.org/cgi-bin/anon-www.cgi/http://app.imdb.com' if options[:anonymize]
|
11
|
+
end
|
12
|
+
|
13
|
+
def build_url(path, params={})
|
14
|
+
default_params = {"api" => "v1", "appid" => "iphone1_1", "apiPolicy" => "app1_1", "apiKey" => "2wex6aeu6a8q9e49k7sfvufd6rhh0n", "locale" => "en_US", "timestamp" => Time.now.to_i}
|
15
|
+
|
16
|
+
query_params = default_params.merge(params)
|
17
|
+
query_param_array = []
|
18
|
+
|
19
|
+
host = self.class.base_uri.gsub('http://', '').to_s
|
20
|
+
|
21
|
+
query_params.each_pair{|key, value| query_param_array << "#{key}=#{URI.escape(value.to_s)}" }
|
22
|
+
uri = URI::HTTP.build(:scheme => 'https', :host => host, :path => path, :query => query_param_array.join("&"))
|
23
|
+
|
24
|
+
query_param_array << "sig=app1-#{OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('sha1'), default_params["apiKey"], uri.to_s)}"
|
25
|
+
|
26
|
+
uri = URI::HTTP.build(:scheme => 'https', :host => host, :path => path, :query => query_param_array.join("&"))
|
27
|
+
uri.to_s
|
28
|
+
end
|
10
29
|
|
11
30
|
def find_by_title(title)
|
12
31
|
movie_results = []
|
13
|
-
|
32
|
+
url = build_url('/find', :q => title)
|
33
|
+
|
34
|
+
results = self.class.get(url).parsed_response
|
14
35
|
|
15
36
|
if results["data"] && results["data"]["results"]
|
16
37
|
results["data"]["results"].each do |result_section|
|
17
38
|
result_section["list"].each do |r|
|
18
39
|
next unless r["tconst"] && r["title"]
|
19
|
-
h = {:title => r["title"], :year => r["year"], :imdb_id => r["tconst"]}
|
40
|
+
h = {:title => r["title"], :year => r["year"], :imdb_id => r["tconst"], :kind => r["type"]}
|
20
41
|
h.merge!(:poster_url => r["image"]["url"]) if r["image"] && r["image"]["url"]
|
21
42
|
movie_results << h
|
22
43
|
end
|
@@ -27,17 +48,23 @@ module ImdbParty
|
|
27
48
|
end
|
28
49
|
|
29
50
|
def find_movie_by_id(imdb_id)
|
30
|
-
|
31
|
-
|
51
|
+
url = build_url('/title/maindetails', :tconst => imdb_id)
|
52
|
+
|
53
|
+
result = self.class.get(url).parsed_response
|
54
|
+
Movie.new(result["data"]) if result["data"]
|
32
55
|
end
|
33
56
|
|
34
57
|
def top_250
|
35
|
-
|
58
|
+
url = build_url('/chart/top')
|
59
|
+
|
60
|
+
results = self.class.get(url).parsed_response
|
36
61
|
results["data"]["list"]["list"].map { |r| {:title => r["title"], :imdb_id => r["tconst"], :year => r["year"], :poster_url => (r["image"] ? r["image"]["url"] : nil)} }
|
37
62
|
end
|
38
63
|
|
39
64
|
def popular_shows
|
40
|
-
|
65
|
+
url = build_url('/chart/tv')
|
66
|
+
|
67
|
+
results = self.class.get(url).parsed_response
|
41
68
|
results["data"]["list"].map { |r| {:title => r["title"], :imdb_id => r["tconst"], :year => r["year"], :poster_url => (r["image"] ? r["image"]["url"] : nil)} }
|
42
69
|
end
|
43
70
|
|
data/lib/imdb_party/movie.rb
CHANGED
@@ -2,7 +2,7 @@ module ImdbParty
|
|
2
2
|
class Movie
|
3
3
|
attr_accessor :imdb_id, :title, :directors, :writers, :tagline, :company, :plot, :runtime, :rating, :poster_url, :release_date, :certification, :genres, :actors, :trailers, :year
|
4
4
|
|
5
|
-
def initialize(options={})
|
5
|
+
def initialize(options={})
|
6
6
|
if not options.nil? and options.keys.first.class == Symbol
|
7
7
|
options.keys.each { |name| instance_variable_set "@" + name.to_s, options[name] }; return
|
8
8
|
end
|
data/lib/movie_searcher.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
require "imdb_party"
|
2
2
|
require 'levenshteinish'
|
3
|
-
require
|
3
|
+
require "mimer_plus"
|
4
|
+
require "rest-client"
|
5
|
+
require "spot"
|
6
|
+
|
4
7
|
class MovieSearcher
|
5
8
|
attr_accessor :options, :cleaners
|
6
9
|
|
@@ -21,14 +24,11 @@ class MovieSearcher
|
|
21
24
|
|
22
25
|
# Finds the movie based on the release name of the movie
|
23
26
|
def self.find_by_release_name(search_value, options = {})
|
27
|
+
return if search_value.nil? or search_value.length.zero?
|
24
28
|
this = MovieSearcher.new(options.merge(:search_value => search_value.to_s))
|
25
29
|
return if this.to_long?
|
26
30
|
|
27
|
-
|
28
|
-
return if movie.nil?
|
29
|
-
|
30
|
-
# If the user wants for information about the movie, the {options[:details]} option should be true
|
31
|
-
this.options[:details] ? self.find_movie_by_id(movie.imdb_id) : movie
|
31
|
+
this.find_the_movie!
|
32
32
|
end
|
33
33
|
|
34
34
|
# Finds the movie based on the nfo file (or similar file)
|
@@ -86,28 +86,24 @@ class MovieSearcher
|
|
86
86
|
end
|
87
87
|
|
88
88
|
def find_the_movie!
|
89
|
-
|
90
|
-
|
91
|
-
until current <= 0 do
|
92
|
-
title = @split.take(current).join(' ')
|
93
|
-
movies = @options[:imdb].find_by_title(title)
|
94
|
-
break if movies.any? and movies.reject{ |movie| self.shortest(movie, title).nil? }.any?
|
95
|
-
current -= 1
|
96
|
-
end
|
97
|
-
|
98
|
-
return if movies.nil? or not movies.any?
|
89
|
+
search = Spot.new.clean!(cleaner(@search_value)).gsub(/\s+/, "_")
|
99
90
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
91
|
+
run = true
|
92
|
+
count = 0
|
93
|
+
while run
|
94
|
+
run = false
|
95
|
+
begin
|
96
|
+
data = RestClient.get "http://sg.media-imdb.com/suggests/#{search[0]}/#{search[0..(search.length - count)]}.json"
|
97
|
+
rescue RestClient::Exception
|
98
|
+
run = true
|
99
|
+
count += 1
|
100
|
+
end
|
101
|
+
|
102
|
+
if not run or count >= search.length
|
103
|
+
iid = data.match(/(tt\d+)/).to_a[1]
|
104
|
+
end
|
105
|
+
end
|
106
|
+
MovieSearcher.find_movie_by_id(iid) if iid
|
111
107
|
end
|
112
108
|
|
113
109
|
def self.method_missing(method, *args, &block)
|
data/movie_searcher.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "movie_searcher"
|
6
|
-
s.version = "0.1.
|
6
|
+
s.version = "0.1.6"
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
8
|
s.authors = ["Linus Oleander", "Jon Maddox"]
|
9
9
|
s.email = ["linus@oleander.nu", "jon@mustacheinc.com"]
|
@@ -16,12 +16,11 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
17
|
s.require_paths = ["lib"]
|
18
18
|
|
19
|
-
s.add_dependency(
|
20
|
-
s.add_dependency(
|
21
|
-
s.add_dependency(
|
22
|
-
s.
|
23
|
-
s.
|
24
|
-
|
25
|
-
s.add_development_dependency(
|
26
|
-
s.add_development_dependency('autotest-fsevent')
|
19
|
+
s.add_dependency("httparty")
|
20
|
+
s.add_dependency("levenshteinish")
|
21
|
+
s.add_dependency("mimer_plus")
|
22
|
+
s.add_dependency("spot")
|
23
|
+
s.add_dependency("rest-client")
|
24
|
+
|
25
|
+
s.add_development_dependency("rspec")
|
27
26
|
end
|
data/spec/movie_searcher_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
|
4
4
|
describe MovieSearcher do
|
5
5
|
it "should only contain should instances of {ImdbParty::Movie}" do
|
6
|
-
MovieSearcher.find_by_title("The Dark Knight").each{|
|
6
|
+
MovieSearcher.find_by_title("The Dark Knight").each {|m| m.should be_instance_of(ImdbParty::Movie) }
|
7
7
|
end
|
8
8
|
|
9
9
|
it "should only contain one instance of {ImdbParty::Movie}" do
|
@@ -46,10 +46,6 @@ describe MovieSearcher do
|
|
46
46
|
MovieSearcher.find_by_release_name(nil).should be_nil
|
47
47
|
end
|
48
48
|
|
49
|
-
it "should not have a rating if the details option isn't being passed" do
|
50
|
-
MovieSearcher.find_by_release_name('Paranormal Activity 2 2010 UNRATED DVDRip XviD-Larceny').rating.should be_nil
|
51
|
-
end
|
52
|
-
|
53
49
|
it "should return a rating if the detail option is being passed" do
|
54
50
|
MovieSearcher.find_by_release_name('Paranormal Activity 2 2010 UNRATED DVDRip XviD-Larceny', :options => {:details => true}).rating.should_not be_nil
|
55
51
|
end
|
@@ -98,7 +94,7 @@ describe MovieSearcher, "should work as before" do
|
|
98
94
|
|
99
95
|
it "have trailers" do
|
100
96
|
@movie.trailers.should be_instance_of(Hash)
|
101
|
-
@movie.should have(
|
97
|
+
@movie.should have(1).trailers
|
102
98
|
@movie.trailers[@movie.trailers.keys.first].should eq("http://www.totaleclips.com/Player/Bounce.aspx?eclipid=e27826&bitrateid=461&vendorid=102&type=.mp4")
|
103
99
|
end
|
104
100
|
|
@@ -136,18 +132,6 @@ describe MovieSearcher, "should work as before" do
|
|
136
132
|
end
|
137
133
|
|
138
134
|
describe MovieSearcher, "should also work as before" do
|
139
|
-
it "should have at least 15 results" do
|
140
|
-
MovieSearcher.find_by_title("ratatouille").count.should >= 15
|
141
|
-
end
|
142
|
-
|
143
|
-
it "search for title with spaces in the name" do
|
144
|
-
MovieSearcher.find_by_title("the truman show").count.should >= 1
|
145
|
-
end
|
146
|
-
|
147
|
-
it "search for bad title with no results" do
|
148
|
-
MovieSearcher.find_by_title("sdkljlkkl123j4lk23kl3").count.should eq(0)
|
149
|
-
end
|
150
|
-
|
151
135
|
it "find movie by id" do
|
152
136
|
MovieSearcher.find_movie_by_id("tt0382932").should be_instance_of(ImdbParty::Movie)
|
153
137
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: movie_searcher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Linus Oleander
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2011-
|
14
|
+
date: 2011-05-03 00:00:00 +02:00
|
15
15
|
default_executable:
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
@@ -48,7 +48,7 @@ dependencies:
|
|
48
48
|
type: :runtime
|
49
49
|
version_requirements: *id003
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
|
-
name:
|
51
|
+
name: spot
|
52
52
|
prerelease: false
|
53
53
|
requirement: &id004 !ruby/object:Gem::Requirement
|
54
54
|
none: false
|
@@ -56,10 +56,10 @@ dependencies:
|
|
56
56
|
- - ">="
|
57
57
|
- !ruby/object:Gem::Version
|
58
58
|
version: "0"
|
59
|
-
type: :
|
59
|
+
type: :runtime
|
60
60
|
version_requirements: *id004
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
62
|
+
name: rest-client
|
63
63
|
prerelease: false
|
64
64
|
requirement: &id005 !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
@@ -67,10 +67,10 @@ dependencies:
|
|
67
67
|
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: "0"
|
70
|
-
type: :
|
70
|
+
type: :runtime
|
71
71
|
version_requirements: *id005
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
|
-
name:
|
73
|
+
name: rspec
|
74
74
|
prerelease: false
|
75
75
|
requirement: &id006 !ruby/object:Gem::Requirement
|
76
76
|
none: false
|
@@ -80,28 +80,6 @@ dependencies:
|
|
80
80
|
version: "0"
|
81
81
|
type: :development
|
82
82
|
version_requirements: *id006
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: autotest-growl
|
85
|
-
prerelease: false
|
86
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
|
-
requirements:
|
89
|
-
- - ">="
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
version: "0"
|
92
|
-
type: :development
|
93
|
-
version_requirements: *id007
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: autotest-fsevent
|
96
|
-
prerelease: false
|
97
|
-
requirement: &id008 !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
|
-
requirements:
|
100
|
-
- - ">="
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: "0"
|
103
|
-
type: :development
|
104
|
-
version_requirements: *id008
|
105
83
|
description: IMDB client using the IMDB API that their iPhone app uses. It can also figure out what movie you are looking for just by looking at the release name of the movie
|
106
84
|
email:
|
107
85
|
- linus@oleander.nu
|
@@ -177,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
155
|
requirements: []
|
178
156
|
|
179
157
|
rubyforge_project:
|
180
|
-
rubygems_version: 1.
|
158
|
+
rubygems_version: 1.6.2
|
181
159
|
signing_key:
|
182
160
|
specification_version: 3
|
183
161
|
summary: IMDB client using the IMDB API that their iPhone app uses
|