faraday 0.8.6 → 0.8.7

Sign up to get free protection for your applications and to get access to all the features.
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: