the_tv_db 0.0.4 → 0.0.5

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.
@@ -1,33 +1,28 @@
1
+ require 'zip/zip'
2
+
1
3
  module TheTvDB
2
- class Response::Unzip < Response
3
- dependency 'zip/zip'
4
-
5
- define_parser do |body|
6
- ::Zip::ZipFile.new body
7
- end
4
+ class Response::Unzip < Faraday::Response::Middleware
8
5
 
9
- def parse(body)
10
- case body
11
- when String
12
- zip = Tempfile.new('unzip_me')
13
- begin
14
- zip.write(body)
15
- unzipped = self.class.parser.call(zip)
16
- files = {}
17
- unzipped.each do |file|
18
- files[file.name] = file.get_input_stream.read
19
- end
20
- ensure
21
- zip.close
22
- zip.unlink
6
+ def on_complete(env)
7
+ env[:body] = unzip(env[:body]) if env[:response_headers]["content-type"] == "application/zip"
8
+ super
9
+ end
10
+
11
+ def unzip(body)
12
+ zipped = Tempfile.new('thetvdb.com')
13
+ begin
14
+ zipped.write(body.force_encoding("utf-8"))
15
+ unzipped = ::Zip::ZipFile.new(zipped)
16
+ files = {}
17
+ unzipped.each do |file|
18
+ files[file.name] = file.get_input_stream.read
23
19
  end
24
20
  files
25
- else
26
- body
21
+ ensure
22
+ zipped.close
23
+ zipped.unlink
27
24
  end
28
- rescue
29
- body
30
25
  end
31
-
26
+
32
27
  end # Response::Unzip
33
- end # TheTvDB
28
+ end # TheTvDB
@@ -1,3 +1,5 @@
1
+ # -*- encoding: utf-8 -*-
2
+
1
3
  module TheTvDB
2
4
  # Contains methods and attributes that act on the response returned from the
3
5
  # request
@@ -18,7 +20,7 @@ module TheTvDB
18
20
 
19
21
  def parse_response?(env)
20
22
  env[:body].respond_to? :to_str
21
- end
23
+ end
22
24
 
23
25
  end # Response
24
26
  end # TheTvDB
@@ -1,3 +1,3 @@
1
1
  module TheTvDB
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -44,8 +44,9 @@ describe TheTvDB::Series do
44
44
 
45
45
  context "when api key is provided" do
46
46
  before(:all) do
47
+ body = TheTvDB::Response::Unzip.new.unzip(fixture("series/en.zip"))
47
48
  stub_get("ASDF01234F0AF1368/series/82066/all/en.zip").
48
- to_return(:status => 200, :body => fixture("series/en.zip"))
49
+ to_return(:status => 200, :body => body)
49
50
  api = TheTvDB.new(:api_key => "ASDF01234F0AF1368")
50
51
  @series = api.series.find("82066")
51
52
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: the_tv_db
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-11-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
16
- requirement: &70218563770480 !ruby/object:Gem::Requirement
16
+ requirement: &70129673485720 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.8.4
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70218563770480
24
+ version_requirements: *70129673485720
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: ox
27
- requirement: &70218563769980 !ruby/object:Gem::Requirement
27
+ requirement: &70129673485220 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.6.6
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70218563769980
35
+ version_requirements: *70129673485220
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: multi_xml
38
- requirement: &70218563769520 !ruby/object:Gem::Requirement
38
+ requirement: &70129673484760 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.5.1
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70218563769520
46
+ version_requirements: *70129673484760
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rubyzip
49
- requirement: &70218563769060 !ruby/object:Gem::Requirement
49
+ requirement: &70129673484300 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.9.9
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70218563769060
57
+ version_requirements: *70129673484300
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rspec
60
- requirement: &70218563768600 !ruby/object:Gem::Requirement
60
+ requirement: &70129673483840 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 2.11.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70218563768600
68
+ version_requirements: *70129673483840
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: webmock
71
- requirement: &70218563768140 !ruby/object:Gem::Requirement
71
+ requirement: &70129673483380 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: 1.8.11
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70218563768140
79
+ version_requirements: *70129673483380
80
80
  description: Ruby API Client for TheTvDB.com
81
81
  email:
82
82
  - javier@tractical.com