faraday 0.8.6 → 0.8.7

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/Rakefile CHANGED
@@ -80,34 +80,8 @@ task :release => :build do
80
80
  end
81
81
 
82
82
  desc "Build #{gem_file} into the pkg directory"
83
- task :build => :gemspec do
83
+ task :build do
84
84
  FileUtils.mkdir_p 'pkg'
85
85
  sh "gem build #{gemspec_file}"
86
86
  sh "mv #{gem_file} pkg"
87
87
  end
88
-
89
- desc "Generate #{gemspec_file}"
90
- task :gemspec do
91
- # read spec file and split out manifest section
92
- spec = File.read(gemspec_file)
93
- head, manifest, tail = spec.split(" # = MANIFEST =\n")
94
-
95
- # replace name version and date
96
- replace_header(head, :name)
97
- replace_header(head, :version)
98
-
99
- # determine file list from git ls-files
100
- files = `git ls-files`.
101
- split("\n").
102
- sort.
103
- reject { |file| file =~ /^\./ }.
104
- reject { |file| file =~ /^(rdoc|pkg)/ }.
105
- map { |file| " #{file}" }.
106
- join("\n")
107
-
108
- # piece file back together and write
109
- manifest = " s.files = %w[\n#{files}\n ]\n"
110
- spec = [head, manifest, tail].join(" # = MANIFEST =\n")
111
- File.open(gemspec_file, 'w') { |io| io.write(spec) }
112
- puts "Updated #{gemspec_file}"
113
- end
@@ -1,5 +1,5 @@
1
1
  module Faraday
2
- VERSION = "0.8.6"
2
+ VERSION = "0.8.7"
3
3
 
4
4
  class << self
5
5
  attr_accessor :root_path, :lib_path
@@ -43,6 +43,14 @@ module Faraday
43
43
  (!got_result && length) ? nil : outbuf
44
44
  end
45
45
 
46
+ def close
47
+ @ios.each { |io| io.close }
48
+ end
49
+
50
+ def ensure_open_and_readable
51
+ # Rubinius compatibility
52
+ end
53
+
46
54
  private
47
55
 
48
56
  def current_io
@@ -170,7 +170,7 @@ module Faraday
170
170
  end
171
171
  end
172
172
 
173
- ESCAPE_RE = /[^\w .~-]+/
173
+ ESCAPE_RE = /[^a-zA-Z0-9 .~_-]/
174
174
 
175
175
  def escape(s)
176
176
  s.to_s.gsub(ESCAPE_RE) {
@@ -1,7 +1,7 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
2
2
  require 'stringio'
3
3
 
4
- class CompositeReadIOTest < Test::Unit::TestCase
4
+ class CompositeReadIOTest < Faraday::TestCase
5
5
  Part = Struct.new(:to_io) do
6
6
  def length() to_io.string.length end
7
7
  end
@@ -70,9 +70,13 @@ class CompositeReadIOTest < Test::Unit::TestCase
70
70
  assert_equal "ab", io.read(2)
71
71
  end
72
72
 
73
- if IO.respond_to?(:copy_stream)
73
+ # JRuby enforces types to copy_stream to be String or IO
74
+ if IO.respond_to?(:copy_stream) && !jruby?
74
75
  def test_compatible_with_copy_stream
75
76
  target_io = StringIO.new
77
+ def target_io.ensure_open_and_writable
78
+ # Rubinius compatibility
79
+ end
76
80
  io = composite_io(part("abcd"), part("1234"))
77
81
 
78
82
  Faraday::Timer.timeout(1) do
@@ -17,6 +17,20 @@ class RequestMiddlewareTest < Faraday::TestCase
17
17
  end
18
18
  end
19
19
 
20
+ def with_utf8
21
+ if defined?(RUBY_VERSION) && RUBY_VERSION.match(/1.8.\d/)
22
+ begin
23
+ previous_kcode = $KCODE
24
+ $KCODE = "UTF8"
25
+ yield
26
+ ensure
27
+ $KCODE = previous_kcode
28
+ end
29
+ else
30
+ yield
31
+ end
32
+ end
33
+
20
34
  def test_does_nothing_without_payload
21
35
  response = @conn.post('/echo')
22
36
  assert_nil response.headers['Content-Type']
@@ -56,6 +70,16 @@ class RequestMiddlewareTest < Faraday::TestCase
56
70
  assert err.empty?
57
71
  end
58
72
 
73
+ def test_url_encoded_unicode_with_kcode_set
74
+ with_utf8 do
75
+ err = capture_warnings {
76
+ response = @conn.post('/echo', {:str => "eé cç aã aâ"})
77
+ assert_equal "str=e%C3%A9+c%C3%A7+a%C3%A3+a%C3%A2", response.body
78
+ }
79
+ assert err.empty?
80
+ end
81
+ end
82
+
59
83
  def test_url_encoded_nested_keys
60
84
  response = @conn.post('/echo', {'a'=>{'b'=>{'c'=>['d']}}})
61
85
  assert_equal "a%5Bb%5D%5Bc%5D%5B%5D=d", response.body
metadata CHANGED
@@ -1,64 +1,64 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faraday
3
3
  version: !ruby/object:Gem::Version
4
+ version: 0.8.7
4
5
  prerelease:
5
- version: 0.8.6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Rick Olson
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-25 00:00:00.000000000 Z
12
+ date: 2013-03-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- version_requirements: !ruby/object:Gem::Requirement
15
+ name: multipart-post
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
19
21
  version: '1.1'
20
- none: false
21
- name: multipart-post
22
22
  type: :runtime
23
23
  prerelease: false
24
- requirement: !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
25
26
  requirements:
26
27
  - - ~>
27
28
  - !ruby/object:Gem::Version
28
29
  version: '1.1'
29
- none: false
30
30
  - !ruby/object:Gem::Dependency
31
- version_requirements: !ruby/object:Gem::Requirement
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
32
34
  requirements:
33
35
  - - ! '>='
34
36
  - !ruby/object:Gem::Version
35
37
  version: '0'
36
- none: false
37
- name: rake
38
38
  type: :development
39
39
  prerelease: false
40
- requirement: !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
41
42
  requirements:
42
43
  - - ! '>='
43
44
  - !ruby/object:Gem::Version
44
45
  version: '0'
45
- none: false
46
46
  - !ruby/object:Gem::Dependency
47
- version_requirements: !ruby/object:Gem::Requirement
47
+ name: simplecov
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
48
50
  requirements:
49
51
  - - ! '>='
50
52
  - !ruby/object:Gem::Version
51
53
  version: '0'
52
- none: false
53
- name: simplecov
54
54
  type: :development
55
55
  prerelease: false
56
- requirement: !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
57
58
  requirements:
58
59
  - - ! '>='
59
60
  - !ruby/object:Gem::Version
60
61
  version: '0'
61
- none: false
62
62
  description:
63
63
  email: technoweenie@gmail.com
64
64
  executables: []
@@ -128,17 +128,17 @@ rdoc_options: []
128
128
  require_paths:
129
129
  - lib
130
130
  required_ruby_version: !ruby/object:Gem::Requirement
131
+ none: false
131
132
  requirements:
132
133
  - - ! '>='
133
134
  - !ruby/object:Gem::Version
134
135
  version: '0'
135
- none: false
136
136
  required_rubygems_version: !ruby/object:Gem::Requirement
137
+ none: false
137
138
  requirements:
138
139
  - - ! '>='
139
140
  - !ruby/object:Gem::Version
140
141
  version: 1.3.6
141
- none: false
142
142
  requirements: []
143
143
  rubyforge_project:
144
144
  rubygems_version: 1.8.23
@@ -146,3 +146,4 @@ signing_key:
146
146
  specification_version: 2
147
147
  summary: HTTP/REST API client library.
148
148
  test_files: []
149
+ has_rdoc: