unified_db 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1 +1,2 @@
1
1
  Gemfile.lock
2
+ pkg
@@ -0,0 +1,6 @@
1
+ script: "bundle exec rake spec"
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.2
5
+ - ree
6
+ - rbx
data/README.md CHANGED
@@ -1,5 +1,3 @@
1
- # Unified Movie Database
1
+ # Unified Movie Database [![](http://travis-ci.org/imanel/UnifiedDB.png)](http://travis-ci.org/imanel/UnifiedDB)
2
2
 
3
3
  This is project for unifying multiple movie database. Currently it support only IMDB and TVDB, but TMDB will be done shortly.
4
-
5
- To see it in action please go to [demo site](http://unified-db.heroku.com)
@@ -15,5 +15,3 @@ module UnifiedDB
15
15
  end
16
16
  end
17
17
  end
18
-
19
- require "#{UnifiedDB::ROOT}/ext/crack"
@@ -6,6 +6,8 @@ module UnifiedDB
6
6
 
7
7
  def find_by_id(id)
8
8
  movie = handler.get_series_by_id(id)
9
+ raise if movie.nil?
10
+
9
11
  @result = Result::ID.new(
10
12
  :id => movie.id,
11
13
  :title => movie.name,
@@ -43,7 +45,8 @@ module UnifiedDB
43
45
  end
44
46
 
45
47
  def format_posters(posters)
46
- posters.select{|poster| poster.banner_type == 'season'}.collect(&:url)
48
+ list = posters.select { |poster| ['season', 'poster'].include? poster.banner_type }
49
+ list.sort { |a,b| b.banner_type <=> a.banner_type }.collect(&:url)
47
50
  end
48
51
 
49
52
  end
@@ -1,5 +1,5 @@
1
1
  module UnifiedDB
2
2
 
3
- VERSION = '0.1.0'
3
+ VERSION = '0.1.1'
4
4
 
5
5
  end
@@ -0,0 +1,5 @@
1
+ # This is fix for Ruby 1.8.7 inability to sort symbols
2
+
3
+ def do_sort(array)
4
+ array.sort { |a, b| a.to_s <=> b.to_s }
5
+ end
@@ -6,7 +6,7 @@ describe UnifiedDB::Backend::IMDB do
6
6
  it "should return valid find by title" do
7
7
  result = subject.find(:title => 'Dark Knight')
8
8
  result.class.should eql(Hash)
9
- result.keys.sort.should eql([:result, :service, :status])
9
+ do_sort(result.keys).should eql([:result, :service, :status])
10
10
  result[:status].should eql('success')
11
11
  result[:service].should eql('imdb')
12
12
  result[:result].class.should eql(Array)
@@ -22,7 +22,7 @@ describe UnifiedDB::Backend::IMDB do
22
22
  decoded = Yajl::Parser.new.parse encoded
23
23
 
24
24
  decoded.class.should eql(Hash)
25
- decoded.keys.sort.should eql(['result', 'service', 'status'])
25
+ do_sort(decoded.keys).should eql(['result', 'service', 'status'])
26
26
  decoded['status'].should eql('success')
27
27
  decoded['service'].should eql('imdb')
28
28
  decoded['result'].class.should eql(Array)
@@ -38,7 +38,7 @@ describe UnifiedDB::Backend::IMDB do
38
38
  it "should return empty array if invalid find by title specified" do
39
39
  result = subject.find(:title => "qwertyuiopasdfghjkllzxcvbnm")
40
40
  result.class.should eql(Hash)
41
- result.keys.sort.should eql([:result, :service, :status])
41
+ do_sort(result.keys).should eql([:result, :service, :status])
42
42
  result[:status].should eql('success')
43
43
  result[:service].should eql('imdb')
44
44
  result[:result].class.should eql(Array)
@@ -49,7 +49,7 @@ describe UnifiedDB::Backend::IMDB do
49
49
  it "should return valid find by id" do
50
50
  result = subject.find(:id => 'tt0468569')
51
51
  result.class.should eql(Hash)
52
- result.keys.sort.should eql([:result, :service, :status])
52
+ do_sort(result.keys).should eql([:result, :service, :status])
53
53
  result[:status].should eql('success')
54
54
  result[:service].should eql('imdb')
55
55
 
@@ -59,7 +59,7 @@ describe UnifiedDB::Backend::IMDB do
59
59
  result[:result].overview.class.should eql(String)
60
60
  result[:result].overview.length.should be > 20
61
61
  result[:result].release_date.class.should eql(String)
62
- result[:result].genres.should eql(["Action", "Crime", "Thriller"])
62
+ result[:result].genres.should eql(["Action", "Crime", "Drama", "Thriller"])
63
63
  result[:result].rating.class.should eql(Float)
64
64
  result[:result].rating.should be > 4
65
65
  result[:result].rating.should be < 10
@@ -75,7 +75,7 @@ describe UnifiedDB::Backend::IMDB do
75
75
  it "should return error if id was not found" do
76
76
  result = subject.find(:id => 'tt046856910')
77
77
  result.class.should eql(Hash)
78
- result.keys.sort.should eql([:reason, :status])
78
+ do_sort(result.keys).should eql([:reason, :status])
79
79
  result[:status].should eql('error')
80
80
  result[:reason].should eql('not found')
81
81
  end
@@ -4,13 +4,13 @@ describe UnifiedDB::Backend::TVDB do
4
4
  subject { described_class.new }
5
5
 
6
6
  it "should return valid find by title" do
7
- result = subject.find(:title => 'StarGate')
7
+ result = subject.find(:title => 'StarGate SG-1')
8
8
  result.class.should eql(Hash)
9
- result.keys.sort.should eql([:result, :service, :status])
9
+ do_sort(result.keys).should eql([:result, :service, :status])
10
10
  result[:status].should eql('success')
11
11
  result[:service].should eql('tvdb')
12
12
  result[:result].class.should eql(Array)
13
- result[:result].size.should be > 3
13
+ result[:result].size.should eql 1
14
14
 
15
15
  first_result = result[:result].first
16
16
  first_result.class.should eql(UnifiedDB::Result::Title)
@@ -22,11 +22,11 @@ describe UnifiedDB::Backend::TVDB do
22
22
  decoded = Yajl::Parser.new.parse encoded
23
23
 
24
24
  decoded.class.should eql(Hash)
25
- decoded.keys.sort.should eql(['result', 'service', 'status'])
25
+ do_sort(decoded.keys).should eql(['result', 'service', 'status'])
26
26
  decoded['status'].should eql('success')
27
27
  decoded['service'].should eql('tvdb')
28
28
  decoded['result'].class.should eql(Array)
29
- decoded['result'].size.should be > 3
29
+ decoded['result'].size.should eql 1
30
30
 
31
31
  first_result = decoded['result'].first
32
32
  first_result.class.should eql(Hash)
@@ -38,7 +38,7 @@ describe UnifiedDB::Backend::TVDB do
38
38
  it "should return empty array if invalid find by title specified" do
39
39
  result = subject.find(:title => "qwertyuiopasdfghjkllzxcvbnm")
40
40
  result.class.should eql(Hash)
41
- result.keys.sort.should eql([:result, :service, :status])
41
+ do_sort(result.keys).should eql([:result, :service, :status])
42
42
  result[:status].should eql('success')
43
43
  result[:service].should eql('tvdb')
44
44
  result[:result].class.should eql(Array)
@@ -49,7 +49,7 @@ describe UnifiedDB::Backend::TVDB do
49
49
  it "should return valid find by id" do
50
50
  result = subject.find(:id => '72449')
51
51
  result.class.should eql(Hash)
52
- result.keys.sort.should eql([:result, :service, :status])
52
+ do_sort(result.keys).should eql([:result, :service, :status])
53
53
  result[:status].should eql('success')
54
54
  result[:service].should eql('tvdb')
55
55
 
@@ -75,7 +75,7 @@ describe UnifiedDB::Backend::TVDB do
75
75
  it "should return error if id was not found" do
76
76
  result = subject.find(:id => '72449123')
77
77
  result.class.should eql(Hash)
78
- result.keys.sort.should eql([:reason, :status])
78
+ do_sort(result.keys).should eql([:reason, :status])
79
79
  result[:status].should eql('error')
80
80
  result[:reason].should eql('not found')
81
81
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unified_db
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-22 00:00:00.000000000 +02:00
12
+ date: 2011-10-16 00:00:00.000000000 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: yajl-ruby
17
- requirement: &70343143888220 !ruby/object:Gem::Requirement
17
+ requirement: &70329097056220 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70343143888220
25
+ version_requirements: *70329097056220
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: imdb_party
28
- requirement: &70343143887680 !ruby/object:Gem::Requirement
28
+ requirement: &70329097055680 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 0.6.0
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70343143887680
36
+ version_requirements: *70329097055680
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: tvdb_party
39
- requirement: &70343143887140 !ruby/object:Gem::Requirement
39
+ requirement: &70329097055120 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 0.6.0
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *70343143887140
47
+ version_requirements: *70329097055120
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rspec
50
- requirement: &70343143886640 !ruby/object:Gem::Requirement
50
+ requirement: &70329097054580 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,7 +55,7 @@ dependencies:
55
55
  version: '2.0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *70343143886640
58
+ version_requirements: *70329097054580
59
59
  description: Scrapper for multiple Movie Databases
60
60
  email:
61
61
  - bernard.potocki@imanel.org
@@ -64,10 +64,10 @@ extensions: []
64
64
  extra_rdoc_files: []
65
65
  files:
66
66
  - .gitignore
67
+ - .travis.yml
67
68
  - Gemfile
68
69
  - README.md
69
70
  - Rakefile
70
- - lib/ext/crack.rb
71
71
  - lib/unified_db.rb
72
72
  - lib/unified_db/api_error.rb
73
73
  - lib/unified_db/backend.rb
@@ -80,6 +80,7 @@ files:
80
80
  - lib/unified_db/result/title.rb
81
81
  - lib/unified_db/version.rb
82
82
  - spec/spec_helper.rb
83
+ - spec/support/do_sort.rb
83
84
  - spec/unified_db/backend/imdb_spec.rb
84
85
  - spec/unified_db/backend/tvdb_spec.rb
85
86
  - unified_db.gemspec
@@ -110,5 +111,6 @@ specification_version: 3
110
111
  summary: Scrapper for multiple Movie Databases
111
112
  test_files:
112
113
  - spec/spec_helper.rb
114
+ - spec/support/do_sort.rb
113
115
  - spec/unified_db/backend/imdb_spec.rb
114
116
  - spec/unified_db/backend/tvdb_spec.rb
@@ -1,10 +0,0 @@
1
- require 'crack/json'
2
- require 'yajl'
3
-
4
- module Crack
5
- class JSON
6
- def self.parse(json)
7
- Yajl::Parser.parse(json)
8
- end
9
- end
10
- end