filmbuff 0.1.1 → 0.1.2

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/History CHANGED
@@ -1,3 +1,9 @@
1
+ == 0.1.2 2011-03-07
2
+
3
+ * minor enhancements
4
+ * Fixed locale support
5
+ * Added part about locale to README
6
+
1
7
  == 0.1.1 2011-03-06
2
8
 
3
9
  * minor enhancements
@@ -41,9 +41,27 @@ If you know the movie's IMDb ID you can get the information as well:
41
41
  movie.rating => 8.3
42
42
  movie.genres => ["Adventure", "Comedy", "Family", "Fantasy", "Musical"]
43
43
 
44
+ To retrieve information in a different language, set the instance variable locale to your wanted locale:
45
+
46
+ imdb.locale = "de_DE"
47
+ movie = imdb.find_by_id("tt0032138")
48
+
49
+ movie.title => "Das zauberhafte Land"
50
+ movie.rating => 8.3
51
+ movie.genres => ["Abenteuer", "Komödie", "Familie", "Fantasy", "Musical"]
52
+
53
+ Supported locales are
54
+
55
+ - de_DE (German)
56
+ - en_US (English) (Default)
57
+ - es_ES (Spanish)
58
+ - fr_FR (French)
59
+ - it_IT (Italian)
60
+ - pt_PT (Portuguese)
61
+
44
62
  ## Authors
45
63
 
46
- * [Kristoffer Sachse](http://github.com/sachse)
64
+ * [Kristoffer Sachse](https://github.com/sachse)
47
65
 
48
66
  ## Contribute
49
67
 
@@ -1,6 +1,6 @@
1
1
  module FilmBuff
2
2
  class IMDb
3
- attr_reader :locale
3
+ attr_accessor :locale
4
4
 
5
5
  include HTTParty
6
6
  include HTTParty::Icebox
@@ -10,7 +10,6 @@ module FilmBuff
10
10
  default_params = {
11
11
  "api" => "v1",
12
12
  "app_id" => "iphone1_1",
13
- "locale" => @locale,
14
13
  "timestamp" => Time.now.utc.to_i,
15
14
  "sig" => "app1_1"
16
15
  }
@@ -20,26 +19,17 @@ module FilmBuff
20
19
  end
21
20
 
22
21
  public
23
- def locale=(locale)
24
- locales = %w[ de_DE en_US es_ES fr_FR it_IT pt_PT ]
25
-
26
- if locales.include? locale
27
- @locale = locale
28
- else
29
- raise "Unknown locale. Only the following are allowed:\n" <<
30
- locales.join(", ")
31
- end
32
- end
33
-
34
22
  def find_by_id(imdb_id)
35
23
  result = self.class.get('/title/maindetails', :query => {
36
- tconst: imdb_id
24
+ tconst: imdb_id, locale: @locale
37
25
  }).parsed_response
38
26
  Title.new(result["data"])
39
27
  end
40
28
 
41
29
  def find_by_title(title)
42
- results = self.class.get('/find', :query => { q: title }).parsed_response
30
+ results = self.class.get('/find', :query => {
31
+ q: title, locale: @locale
32
+ }).parsed_response
43
33
  find_by_id(results["data"]["results"][0]["list"][0]["tconst"])
44
34
  end
45
35
  end
@@ -1,3 +1,3 @@
1
1
  module Filmbuff
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -12,29 +12,19 @@ describe FilmBuff::IMDb do
12
12
  end
13
13
 
14
14
  describe "#locale=" do
15
- context "given valid locale" do
16
- it "sets locale to the given value" do
17
- @imdb.locale = "de_DE"
18
- @imdb.locale.should == "de_DE"
19
- end
20
- end
21
-
22
- context "given invalid locale" do
23
- it "raises an exception" do
24
- lambda { @imdb.locale = "da_DK" }.should raise_error StandardError
25
- end
15
+ it "sets locale to the given value" do
16
+ @imdb.locale = "de_DE"
17
+ @imdb.locale.should == "de_DE"
26
18
  end
27
19
  end
28
20
 
29
21
  describe "#find_by_id" do
30
- context "given valid ID" do
31
- before(:all) do
32
- @title = @imdb.find_by_id("tt0032138")
33
- end
22
+ before(:all) do
23
+ @title = @imdb.find_by_id("tt0032138")
24
+ end
34
25
 
35
- it "returns a Title" do
36
- @title.instance_of?(FilmBuff::Title).should be_true
37
- end
26
+ it "returns a Title" do
27
+ @title.instance_of?(FilmBuff::Title).should be_true
38
28
  end
39
29
  end
40
30
 
@@ -1,51 +1,115 @@
1
+ # -*- encoding: utf-8 -*-
1
2
  require File.expand_path(File.join(File.dirname(__FILE__), '../spec_helper'))
2
3
 
3
4
  describe FilmBuff::Title do
4
- before(:all) do
5
- @imdb = FilmBuff::IMDb.new
6
- @title = @imdb.find_by_id("tt0032138")
7
- end
5
+ context "given no locale" do
6
+ before(:all) do
7
+ @imdb = FilmBuff::IMDb.new
8
+ @title = @imdb.find_by_id("tt0032138")
9
+ end
8
10
 
9
- it "has an IMDb ID" do
10
- @title.imdb_id.should == "tt0032138"
11
- end
11
+ it "has an IMDb ID" do
12
+ @title.imdb_id.should == "tt0032138"
13
+ end
12
14
 
13
- it "has a title" do
14
- @title.title.should == "The Wizard of Oz"
15
- end
15
+ it "has a title" do
16
+ @title.title.should == "The Wizard of Oz"
17
+ end
16
18
 
17
- it "has a tagline" do
18
- @title.tagline.should == "\"The Wizard\" Musical Returns By " <<
19
- "Unprecedented Demand! [UK re-release]"
20
- end
19
+ it "has a tagline" do
20
+ @title.tagline.should == "\"The Wizard\" Musical Returns By " <<
21
+ "Unprecedented Demand! [UK re-release]"
22
+ end
21
23
 
22
- it "has a plot" do
23
- @title.plot.should == "Dorothy Gale is swept away to a magical land in " <<
24
- "a tornado and embarks on a quest to see the Wizard who can help her " <<
25
- "return home."
26
- end
24
+ it "has a plot" do
25
+ @title.plot.should == "Dorothy Gale is swept away to a magical land in " <<
26
+ "a tornado and embarks on a quest to see the Wizard who can help her " <<
27
+ "return home."
28
+ end
27
29
 
28
- it "has a runtime" do
29
- @title.runtime.should == "101 min"
30
- end
30
+ it "has a runtime" do
31
+ @title.runtime.should == "101 min"
32
+ end
31
33
 
32
- it "has a rating" do
33
- @title.rating.should be_a(Float)
34
- end
34
+ it "has a rating" do
35
+ @title.rating.should be_a(Float)
36
+ end
35
37
 
36
- it "has an amount of votes" do
37
- @title.votes.should be_a(Integer)
38
- end
38
+ it "has an amount of votes" do
39
+ @title.votes.should be_a(Integer)
40
+ end
39
41
 
40
- it "has a poster URL" do
41
- @title.poster_url.should match /http:\/\/ia.media-imdb.com\/images\/.*/
42
- end
42
+ it "has a poster URL" do
43
+ @title.poster_url.should match /http:\/\/ia.media-imdb.com\/images\/.*/
44
+ end
45
+
46
+ it "has genres" do
47
+ @title.genres.should == %w[ Adventure Comedy Family Fantasy Musical]
48
+ end
43
49
 
44
- it "has genres" do
45
- @title.genres.should == %w[ Adventure Comedy Family Fantasy Musical]
50
+ it "has a release date" do
51
+ @title.release_date.should == DateTime.parse("1939-08-25")
52
+ end
46
53
  end
47
54
 
48
- it "has a release date" do
49
- @title.release_date.should == DateTime.parse("1939-08-25")
55
+ context "given locale" do
56
+ before(:all) do
57
+ @imdb = FilmBuff::IMDb.new
58
+ end
59
+
60
+ context "\"de_DE\"" do
61
+ before(:all) do
62
+ @imdb.locale = "de_DE"
63
+ @title = @imdb.find_by_id("tt0032138")
64
+ end
65
+
66
+ it "returns German information" do
67
+ @title.title.should == "Das zauberhafte Land"
68
+ end
69
+ end
70
+
71
+ context "\"es_ES\"" do
72
+ before(:all) do
73
+ @imdb.locale = "es_ES"
74
+ @title = @imdb.find_by_id("tt0032138")
75
+ end
76
+
77
+ it "returns Spanish information" do
78
+ @title.title.should == "El mago de Oz"
79
+ end
80
+ end
81
+
82
+ context "\"fr_FR\"" do
83
+ before(:all) do
84
+ @imdb.locale = "fr_FR"
85
+ @title = @imdb.find_by_id("tt0032138")
86
+ end
87
+
88
+ it "returns French information" do
89
+ @title.title.should == "Le magicien d'Oz"
90
+ end
91
+ end
92
+
93
+ context "\"it_IT\"" do
94
+ before(:all) do
95
+ @imdb.locale = "it_IT"
96
+ @title = @imdb.find_by_id("tt0032138")
97
+ end
98
+
99
+ it "returns Italian information" do
100
+ @title.title.should == "Il mago di Oz"
101
+ end
102
+ end
103
+
104
+ context "\"pt_PT\"" do
105
+ before(:all) do
106
+ @imdb.locale = "pt_PT"
107
+ @title = @imdb.find_by_id("tt0032138")
108
+ end
109
+
110
+ it "returns Spanish information" do
111
+ @title.title.should == "O Feiticeiro de Oz"
112
+ end
113
+ end
50
114
  end
51
115
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: filmbuff
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.1
5
+ version: 0.1.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Kristoffer Sachse
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-03-06 00:00:00 +01:00
13
+ date: 2011-03-07 00:00:00 +01:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -49,6 +49,7 @@ files:
49
49
  - Gemfile
50
50
  - History
51
51
  - LICENSE
52
+ - README.md
52
53
  - Rakefile
53
54
  - filmbuff.gemspec
54
55
  - lib/filmbuff.rb
@@ -56,7 +57,6 @@ files:
56
57
  - lib/filmbuff/imdb.rb
57
58
  - lib/filmbuff/title.rb
58
59
  - lib/filmbuff/version.rb
59
- - readme.markdown
60
60
  - spec/filmbuff/imdb_spec.rb
61
61
  - spec/filmbuff/title_spec.rb
62
62
  - spec/filmbuff_spec.rb