pinch 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/pinch.rb +11 -4
  2. data/spec/pinch_spec.rb +8 -0
  3. metadata +16 -5
data/lib/pinch.rb CHANGED
@@ -5,7 +5,7 @@ require 'zlib'
5
5
  # @author Peter Hellberg
6
6
  # @author Edward Patel
7
7
  class Pinch
8
- VERSION = "0.0.9"
8
+ VERSION = "0.1.0"
9
9
 
10
10
  attr_reader :uri
11
11
 
@@ -82,9 +82,16 @@ class Pinch
82
82
  # @note You might want to use Pinch.content_length instead
83
83
  #
84
84
  def content_length
85
- @content_length ||= prepared_connection.start { |http|
86
- http.head(@uri.path)
87
- }['Content-Length'].to_i
85
+ @content_length ||= begin
86
+ response = prepared_connection.start { |http|
87
+ http.head(@uri.path)
88
+ }
89
+
90
+ # Raise exception if the response code isn’t in the 2xx range
91
+ response.error! unless response.kind_of?(Net::HTTPSuccess)
92
+
93
+ response['Content-Length'].to_i
94
+ end
88
95
  end
89
96
 
90
97
  private
data/spec/pinch_spec.rb CHANGED
@@ -91,5 +91,13 @@ describe Pinch do
91
91
  Pinch.content_length(@url).must_equal 2516612
92
92
  end
93
93
  end
94
+
95
+ it "should raise an exception if the file doesn't exist" do
96
+ VCR.use_cassette('content_length_404') do
97
+ lambda {
98
+ Pinch.content_length(@url+'404')
99
+ }.must_raise Net::HTTPServerException
100
+ end
101
+ end
94
102
  end
95
103
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: pinch
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.9
5
+ version: 0.1.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Peter Hellberg
@@ -11,11 +11,11 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-07-18 00:00:00 +02:00
14
+ date: 2011-07-19 00:00:00 +02:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
- name: minitest
18
+ name: yard
19
19
  prerelease: false
20
20
  requirement: &id001 !ruby/object:Gem::Requirement
21
21
  none: false
@@ -26,7 +26,7 @@ dependencies:
26
26
  type: :development
27
27
  version_requirements: *id001
28
28
  - !ruby/object:Gem::Dependency
29
- name: fakeweb
29
+ name: minitest
30
30
  prerelease: false
31
31
  requirement: &id002 !ruby/object:Gem::Requirement
32
32
  none: false
@@ -37,7 +37,7 @@ dependencies:
37
37
  type: :development
38
38
  version_requirements: *id002
39
39
  - !ruby/object:Gem::Dependency
40
- name: vcr
40
+ name: fakeweb
41
41
  prerelease: false
42
42
  requirement: &id003 !ruby/object:Gem::Requirement
43
43
  none: false
@@ -47,6 +47,17 @@ dependencies:
47
47
  version: "0"
48
48
  type: :development
49
49
  version_requirements: *id003
50
+ - !ruby/object:Gem::Dependency
51
+ name: vcr
52
+ prerelease: false
53
+ requirement: &id004 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: "0"
59
+ type: :development
60
+ version_requirements: *id004
50
61
  description: Pinch makes it possible to download a specific file from within a ZIP file over HTTP 1.1.
51
62
  email: peter@c7.se
52
63
  executables: []