faraday 0.6.1 → 0.7.4

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.
@@ -42,6 +42,37 @@ class RequestMiddlewareTest < Faraday::TestCase
42
42
  assert_equal '{"a":"b"}', response.body
43
43
  end
44
44
 
45
+ def test_json_fails_with_useful_message_when_no_json_adapter_available
46
+ without_json_adapter do
47
+ expected_msg = "No JSON adapter available. Install either activesupport or yajl-ruby."
48
+ # assert_raise doesn't work to check the message (at least on 1.8.7)
49
+ begin
50
+ @conn.post('/echo', { :fruit => %w[apples oranges] }, 'content-type' => 'application/json')
51
+ fail "Exception not raised"
52
+ rescue Faraday::Error::MissingDependency => e
53
+ assert_equal expected_msg, e.message
54
+ end
55
+ end
56
+ end
57
+
58
+ def test_url_encoded_does_not_fail_when_no_json_adapter_available
59
+ without_json_adapter do
60
+ assert_nothing_raised {
61
+ @conn.post('/echo', { :fruit => %w[apples oranges] })
62
+ }
63
+ end
64
+ end
65
+
66
+ def without_json_adapter
67
+ original_adapter = Faraday::Request::JSON.adapter
68
+ Faraday::Request::JSON.adapter = nil
69
+ begin
70
+ yield
71
+ ensure
72
+ Faraday::Request::JSON.adapter = original_adapter
73
+ end
74
+ end
75
+
45
76
  def test_url_encoded_no_header
46
77
  response = @conn.post('/echo', { :fruit => %w[apples oranges] })
47
78
  assert_equal 'application/x-www-form-urlencoded', response.headers['Content-Type']
@@ -74,8 +105,8 @@ class RequestMiddlewareTest < Faraday::TestCase
74
105
  assert_kind_of Faraday::CompositeReadIO, response.body
75
106
  assert_equal "multipart/form-data;boundary=%s" % Faraday::Request::Multipart::DEFAULT_BOUNDARY,
76
107
  response.headers['Content-Type']
77
-
78
- response.body.send(:ios).map(&:read).each do |io|
108
+
109
+ response.body.send(:ios).map{|io| io.read}.each do |io|
79
110
  if re = regexes.detect { |r| io =~ r }
80
111
  regexes.delete re
81
112
  end
@@ -45,3 +45,30 @@ class ResponseMiddlewareTest < Faraday::TestCase
45
45
  assert_equal '<BODY></BODY>', @conn.get('ok').body
46
46
  end
47
47
  end
48
+
49
+ class ResponseNoBodyMiddleWareTest < Faraday::TestCase
50
+ def setup
51
+ @conn = Faraday.new do |b|
52
+ b.response :raise_error
53
+ b.adapter :test do |stub|
54
+ stub.get('not modified') { [304, nil, nil] }
55
+ stub.get('no content') { [204, nil, nil] }
56
+ end
57
+ end
58
+ @conn.builder.insert(0, NotCalled)
59
+ end
60
+
61
+ class NotCalled < Faraday::Response::Middleware
62
+ def parse(body)
63
+ raise "this should not be called"
64
+ end
65
+ end
66
+
67
+ def test_204
68
+ assert_equal nil, @conn.get('no content').body
69
+ end
70
+
71
+ def test_304
72
+ assert_equal nil, @conn.get('not modified').body
73
+ end
74
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: faraday
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.6.1
5
+ version: 0.7.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Rick Olson
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-13 00:00:00 Z
13
+ date: 2011-07-08 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
@@ -20,35 +20,57 @@ dependencies:
20
20
  requirements:
21
21
  - - ~>
22
22
  - !ruby/object:Gem::Version
23
- version: "0.8"
23
+ version: "0.9"
24
24
  type: :development
25
25
  version_requirements: *id001
26
26
  - !ruby/object:Gem::Dependency
27
- name: addressable
27
+ name: test-unit
28
28
  prerelease: false
29
29
  requirement: &id002 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ~>
33
33
  - !ruby/object:Gem::Version
34
- version: 2.2.4
35
- type: :runtime
34
+ version: "2.3"
35
+ type: :development
36
36
  version_requirements: *id002
37
37
  - !ruby/object:Gem::Dependency
38
- name: multipart-post
38
+ name: webmock
39
39
  prerelease: false
40
40
  requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: "1.6"
46
+ type: :development
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: addressable
50
+ prerelease: false
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
56
+ version: 2.2.6
57
+ type: :runtime
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
60
+ name: multipart-post
61
+ prerelease: false
62
+ requirement: &id005 !ruby/object:Gem::Requirement
41
63
  none: false
42
64
  requirements:
43
65
  - - ~>
44
66
  - !ruby/object:Gem::Version
45
67
  version: 1.1.0
46
68
  type: :runtime
47
- version_requirements: *id003
69
+ version_requirements: *id005
48
70
  - !ruby/object:Gem::Dependency
49
71
  name: rack
50
72
  prerelease: false
51
- requirement: &id004 !ruby/object:Gem::Requirement
73
+ requirement: &id006 !ruby/object:Gem::Requirement
52
74
  none: false
53
75
  requirements:
54
76
  - - ">="
@@ -58,7 +80,7 @@ dependencies:
58
80
  - !ruby/object:Gem::Version
59
81
  version: "2"
60
82
  type: :runtime
61
- version_requirements: *id004
83
+ version_requirements: *id006
62
84
  description: HTTP/REST API client library.
63
85
  email: technoweenie@gmail.com
64
86
  executables: []
@@ -69,9 +91,10 @@ extra_rdoc_files: []
69
91
 
70
92
  files:
71
93
  - Gemfile
72
- - LICENSE
94
+ - LICENSE.md
73
95
  - README.md
74
96
  - Rakefile
97
+ - config.ru
75
98
  - faraday.gemspec
76
99
  - lib/faraday.rb
77
100
  - lib/faraday/adapter.rb
@@ -129,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
152
  requirements: []
130
153
 
131
154
  rubyforge_project: faraday
132
- rubygems_version: 1.7.2
155
+ rubygems_version: 1.8.5
133
156
  signing_key:
134
157
  specification_version: 2
135
158
  summary: HTTP/REST API client library.
@@ -143,4 +166,3 @@ test_files:
143
166
  - test/middleware_stack_test.rb
144
167
  - test/request_middleware_test.rb
145
168
  - test/response_middleware_test.rb
146
- has_rdoc: