faraday_middleware 0.6.3 → 0.6.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.
- data/.travis.yml +4 -1
- data/Gemfile +5 -1
- data/README.md +21 -23
- data/Rakefile +2 -0
- data/faraday_middleware.gemspec +23 -24
- data/lib/faraday/response/parse_marshal.rb +10 -0
- data/lib/faraday/response/parse_yaml.rb +11 -0
- data/lib/faraday_middleware.rb +6 -4
- data/lib/faraday_middleware/version.rb +1 -1
- data/spec/helper.rb +4 -11
- data/spec/parse_json_spec.rb +8 -8
- data/spec/parse_marshal_spec.rb +33 -0
- data/spec/parse_xml_spec.rb +4 -4
- data/spec/parse_yaml_spec.rb +33 -0
- metadata +15 -7
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,43 +1,41 @@
|
|
1
|
-
|
1
|
+
Faraday Middleware
|
2
|
+
==================
|
2
3
|
|
3
|
-
|
4
|
+
A collection of some useful [Faraday](https://github.com/technoweenie/faraday) middleware
|
4
5
|
|
6
|
+
Installation
|
7
|
+
------------
|
8
|
+
gem install faraday_middleware
|
5
9
|
|
6
|
-
|
10
|
+
Examples
|
11
|
+
--------
|
12
|
+
Let's decode the response body with [MultiJson](https://github.com/intridea/multi_json)!
|
7
13
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
#### Some examples
|
12
|
-
|
13
|
-
Let's decode the response body with [MultiJson](http://github.com/intridea/multi_json)
|
14
|
-
|
15
|
-
conn = Faraday::Connection.new(:url => 'http://api.twitter.com/1') do |builder|
|
16
|
-
builder.adapter Faraday.default_adapter
|
14
|
+
connection = Faraday.new(:url => 'http://api.twitter.com/1') do |builder|
|
17
15
|
builder.use Faraday::Response::ParseJson
|
16
|
+
builder.adapter Faraday.default_adapter
|
18
17
|
end
|
19
18
|
|
20
|
-
|
21
|
-
|
19
|
+
response = connection.get do |request|
|
20
|
+
request.url '/users/show.json', :screen_name => 'pengwynn'
|
22
21
|
end
|
23
22
|
|
24
|
-
u =
|
23
|
+
u = response.body
|
25
24
|
u['name']
|
26
25
|
# => "Wynn Netherland"
|
27
26
|
|
27
|
+
Want to ditch the brackets and use dot notation? [Mashify](https://github.com/intridea/hashie) it!
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
conn = Faraday::Connection.new(:url => 'http://api.twitter.com/1') do |builder|
|
32
|
-
builder.adapter Faraday.default_adapter
|
33
|
-
builder.use Faraday::Response::ParseJson
|
29
|
+
connection = Faraday.new(:url => 'http://api.twitter.com/1') do |builder|
|
34
30
|
builder.use Faraday::Response::Mashify
|
31
|
+
builder.use Faraday::Response::ParseJson
|
32
|
+
builder.adapter Faraday.default_adapter
|
35
33
|
end
|
36
34
|
|
37
|
-
|
38
|
-
|
35
|
+
response = connection.get do |request|
|
36
|
+
request.url '/users/show.json', :screen_name => 'pengwynn'
|
39
37
|
end
|
40
38
|
|
41
|
-
u =
|
39
|
+
u = response.body
|
42
40
|
u.name
|
43
41
|
# => "Wynn Netherland"
|
data/Rakefile
CHANGED
data/faraday_middleware.gemspec
CHANGED
@@ -1,33 +1,32 @@
|
|
1
1
|
require File.expand_path('../lib/faraday_middleware/version', __FILE__)
|
2
2
|
|
3
|
-
Gem::Specification.new do |
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
Gem::Specification.new do |gem|
|
4
|
+
gem.name = 'faraday_middleware'
|
5
|
+
gem.summary = %q{Various middleware for Faraday}
|
6
|
+
gem.description = gem.summary
|
7
7
|
|
8
|
-
|
8
|
+
gem.homepage = 'https://github.com/pengwynn/faraday_middleware'
|
9
9
|
|
10
|
-
|
11
|
-
|
10
|
+
gem.authors = ["Erik Michaels-Ober", "Wynn Netherland"]
|
11
|
+
gem.email = ['sferik@gmail.com', 'wynn.netherland@gmail.com']
|
12
12
|
|
13
|
-
|
14
|
-
s.platform = Gem::Platform::RUBY
|
13
|
+
gem.version = FaradayMiddleware::VERSION
|
15
14
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
15
|
+
gem.require_paths = ['lib']
|
16
|
+
gem.files = `git ls-files`.split("\n")
|
17
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
19
|
|
21
|
-
|
20
|
+
gem.required_rubygems_version = Gem::Requirement.new('>= 1.3.6')
|
22
21
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
22
|
+
gem.add_runtime_dependency 'faraday', '~> 0.6.0'
|
23
|
+
gem.add_development_dependency 'rake', '~> 0.9'
|
24
|
+
gem.add_development_dependency 'rspec', '~> 2.6'
|
25
|
+
gem.add_development_dependency 'simplecov', '~> 0.4'
|
26
|
+
gem.add_development_dependency 'rash', '~> 0.3'
|
27
|
+
gem.add_development_dependency 'json_pure', '~> 1.5'
|
28
|
+
gem.add_development_dependency 'multi_json', '~> 1.0'
|
29
|
+
gem.add_development_dependency 'multi_xml', '~> 0.2'
|
30
|
+
gem.add_development_dependency 'oauth2', '~> 0.2'
|
31
|
+
gem.add_development_dependency 'simple_oauth', '~> 0.1'
|
33
32
|
end
|
data/lib/faraday_middleware.rb
CHANGED
@@ -6,8 +6,10 @@ class Faraday::Request
|
|
6
6
|
end
|
7
7
|
|
8
8
|
class Faraday::Response
|
9
|
-
autoload :Mashify,
|
10
|
-
autoload :ParseJson,
|
11
|
-
autoload :
|
12
|
-
autoload :
|
9
|
+
autoload :Mashify, 'faraday/response/mashify'
|
10
|
+
autoload :ParseJson, 'faraday/response/parse_json'
|
11
|
+
autoload :ParseMarshal, 'faraday/response/parse_marshal'
|
12
|
+
autoload :ParseXml, 'faraday/response/parse_xml'
|
13
|
+
autoload :ParseYaml, 'faraday/response/parse_yaml'
|
14
|
+
autoload :Rashify, 'faraday/response/rashify'
|
13
15
|
end
|
data/spec/helper.rb
CHANGED
@@ -1,16 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
rescue LoadError
|
4
|
-
puts 'although not required, its recommended you use bundler when running the tests'
|
5
|
-
end
|
6
|
-
|
1
|
+
$:.unshift File.expand_path('..', __FILE__)
|
2
|
+
$:.unshift File.expand_path('../../lib', __FILE__)
|
7
3
|
require 'simplecov'
|
8
4
|
SimpleCov.start
|
9
|
-
|
10
|
-
require 'rspec'
|
11
|
-
|
12
5
|
require 'faraday_middleware'
|
13
|
-
|
6
|
+
require 'rspec'
|
14
7
|
|
15
8
|
class DummyApp
|
16
9
|
attr_accessor :env
|
@@ -22,4 +15,4 @@ class DummyApp
|
|
22
15
|
def reset
|
23
16
|
@env = nil
|
24
17
|
end
|
25
|
-
end
|
18
|
+
end
|
data/spec/parse_json_spec.rb
CHANGED
@@ -2,46 +2,46 @@ require 'helper'
|
|
2
2
|
|
3
3
|
describe Faraday::Response::ParseJson do
|
4
4
|
context 'when used' do
|
5
|
-
let(:
|
5
|
+
let(:parse_json) { Faraday::Response::ParseJson.new }
|
6
6
|
|
7
7
|
it 'should handle a blank response' do
|
8
|
-
empty =
|
8
|
+
empty = parse_json.on_complete(:body => '')
|
9
9
|
empty.should be_nil
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'should handle a true response' do
|
13
|
-
response =
|
13
|
+
response = parse_json.on_complete(:body => 'true')
|
14
14
|
response.should be_true
|
15
15
|
end
|
16
16
|
|
17
17
|
it 'should handle a false response' do
|
18
|
-
response =
|
18
|
+
response = parse_json.on_complete(:body => 'false')
|
19
19
|
response.should be_false
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'should handle hashes' do
|
23
|
-
me =
|
23
|
+
me = parse_json.on_complete(:body => '{"name":"Erik Michaels-Ober","screen_name":"sferik"}')
|
24
24
|
me.class.should == Hash
|
25
25
|
me['name'].should == 'Erik Michaels-Ober'
|
26
26
|
me['screen_name'].should == 'sferik'
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'should handle arrays' do
|
30
|
-
values =
|
30
|
+
values = parse_json.on_complete(:body => '[123, 456]')
|
31
31
|
values.class.should == Array
|
32
32
|
values.first.should == 123
|
33
33
|
values.last.should == 456
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'should handle arrays of hashes' do
|
37
|
-
us =
|
37
|
+
us = parse_json.on_complete(:body => '[{"screen_name":"sferik"},{"screen_name":"pengwynn"}]')
|
38
38
|
us.class.should == Array
|
39
39
|
us.first['screen_name'].should == 'sferik'
|
40
40
|
us.last['screen_name'].should == 'pengwynn'
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'should handle mixed arrays' do
|
44
|
-
values =
|
44
|
+
values = parse_json.on_complete(:body => '[123, {"screen_name":"sferik"}, 456]')
|
45
45
|
values.class.should == Array
|
46
46
|
values.first.should == 123
|
47
47
|
values.last.should == 456
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Faraday::Response::ParseMarshal do
|
4
|
+
context 'when used' do
|
5
|
+
let(:parse_marshal) { Faraday::Response::ParseMarshal.new }
|
6
|
+
|
7
|
+
it 'should load a marshalled hash' do
|
8
|
+
me = parse_marshal.on_complete(:body => "\x04\b{\x06I\"\tname\x06:\x06ETI\"\x17Erik Michaels-Ober\x06;\x00T")
|
9
|
+
me.class.should == Hash
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should handle hashes' do
|
13
|
+
me = parse_marshal.on_complete(:body => "\x04\b{\x06I\"\tname\x06:\x06ETI\"\x17Erik Michaels-Ober\x06;\x00T")
|
14
|
+
me['name'].should == 'Erik Michaels-Ober'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'integration test' do
|
19
|
+
let(:stubs) { Faraday::Adapter::Test::Stubs.new }
|
20
|
+
let(:connection) do
|
21
|
+
Faraday::Connection.new do |builder|
|
22
|
+
builder.adapter :test, stubs
|
23
|
+
builder.use Faraday::Response::ParseMarshal
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should create a Hash from the body' do
|
28
|
+
stubs.get('/hash') {[200, {'content-type' => 'application/xml; charset=utf-8'}, "\x04\b{\x06I\"\tname\x06:\x06ETI\"\x17Erik Michaels-Ober\x06;\x00T"]}
|
29
|
+
me = connection.get('/hash').body
|
30
|
+
me.class.should == Hash
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/spec/parse_xml_spec.rb
CHANGED
@@ -2,20 +2,20 @@ require 'helper'
|
|
2
2
|
|
3
3
|
describe Faraday::Response::ParseXml do
|
4
4
|
context 'when used' do
|
5
|
-
let(:
|
5
|
+
let(:parse_xml) { Faraday::Response::ParseXml.new }
|
6
6
|
|
7
7
|
it 'should handle an empty response' do
|
8
|
-
empty =
|
8
|
+
empty = parse_xml.on_complete(:body => '')
|
9
9
|
empty.should == Hash.new
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'should create a Hash from the body' do
|
13
|
-
me =
|
13
|
+
me = parse_xml.on_complete(:body => '<user><name>Erik Michaels-Ober</name><screen_name>sferik</screen_name></user>')
|
14
14
|
me.class.should == Hash
|
15
15
|
end
|
16
16
|
|
17
17
|
it 'should handle hashes' do
|
18
|
-
me =
|
18
|
+
me = parse_xml.on_complete(:body => '<user><name>Erik Michaels-Ober</name><screen_name>sferik</screen_name></user>')
|
19
19
|
me['user']['name'].should == 'Erik Michaels-Ober'
|
20
20
|
me['user']['screen_name'].should == 'sferik'
|
21
21
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Faraday::Response::ParseYaml do
|
4
|
+
context 'when used' do
|
5
|
+
let(:parse_yaml) { Faraday::Response::ParseYaml.new }
|
6
|
+
|
7
|
+
it 'should load a marshalled hash' do
|
8
|
+
me = parse_yaml.on_complete(:body => "--- \nname: Erik Michaels-Ober\n")
|
9
|
+
me.class.should == Hash
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should handle hashes' do
|
13
|
+
me = parse_yaml.on_complete(:body => "--- \nname: Erik Michaels-Ober\n")
|
14
|
+
me['name'].should == 'Erik Michaels-Ober'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'integration test' do
|
19
|
+
let(:stubs) { Faraday::Adapter::Test::Stubs.new }
|
20
|
+
let(:connection) do
|
21
|
+
Faraday::Connection.new do |builder|
|
22
|
+
builder.adapter :test, stubs
|
23
|
+
builder.use Faraday::Response::ParseYaml
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should create a Hash from the body' do
|
28
|
+
stubs.get('/hash') {[200, {'content-type' => 'application/xml; charset=utf-8'}, "--- \nname: Erik Michaels-Ober\n"]}
|
29
|
+
me = connection.get('/hash').body
|
30
|
+
me.class.should == Hash
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: faraday_middleware
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.6.
|
5
|
+
version: 0.6.5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Erik Michaels-Ober
|
@@ -11,7 +11,8 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2011-
|
14
|
+
date: 2011-06-22 00:00:00 -07:00
|
15
|
+
default_executable:
|
15
16
|
dependencies:
|
16
17
|
- !ruby/object:Gem::Dependency
|
17
18
|
name: faraday
|
@@ -32,7 +33,7 @@ dependencies:
|
|
32
33
|
requirements:
|
33
34
|
- - ~>
|
34
35
|
- !ruby/object:Gem::Version
|
35
|
-
version: "0.
|
36
|
+
version: "0.9"
|
36
37
|
type: :development
|
37
38
|
version_requirements: *id002
|
38
39
|
- !ruby/object:Gem::Dependency
|
@@ -43,7 +44,7 @@ dependencies:
|
|
43
44
|
requirements:
|
44
45
|
- - ~>
|
45
46
|
- !ruby/object:Gem::Version
|
46
|
-
version: "2.
|
47
|
+
version: "2.6"
|
47
48
|
type: :development
|
48
49
|
version_requirements: *id003
|
49
50
|
- !ruby/object:Gem::Dependency
|
@@ -87,7 +88,7 @@ dependencies:
|
|
87
88
|
requirements:
|
88
89
|
- - ~>
|
89
90
|
- !ruby/object:Gem::Version
|
90
|
-
version: "
|
91
|
+
version: "1.0"
|
91
92
|
type: :development
|
92
93
|
version_requirements: *id007
|
93
94
|
- !ruby/object:Gem::Dependency
|
@@ -148,7 +149,9 @@ files:
|
|
148
149
|
- lib/faraday/request/oauth2.rb
|
149
150
|
- lib/faraday/response/mashify.rb
|
150
151
|
- lib/faraday/response/parse_json.rb
|
152
|
+
- lib/faraday/response/parse_marshal.rb
|
151
153
|
- lib/faraday/response/parse_xml.rb
|
154
|
+
- lib/faraday/response/parse_yaml.rb
|
152
155
|
- lib/faraday/response/rashify.rb
|
153
156
|
- lib/faraday_middleware.rb
|
154
157
|
- lib/faraday_middleware/version.rb
|
@@ -157,9 +160,12 @@ files:
|
|
157
160
|
- spec/oauth2_spec.rb
|
158
161
|
- spec/oauth_spec.rb
|
159
162
|
- spec/parse_json_spec.rb
|
163
|
+
- spec/parse_marshal_spec.rb
|
160
164
|
- spec/parse_xml_spec.rb
|
165
|
+
- spec/parse_yaml_spec.rb
|
161
166
|
- spec/rashify_spec.rb
|
162
|
-
|
167
|
+
has_rdoc: true
|
168
|
+
homepage: https://github.com/pengwynn/faraday_middleware
|
163
169
|
licenses: []
|
164
170
|
|
165
171
|
post_install_message:
|
@@ -182,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
188
|
requirements: []
|
183
189
|
|
184
190
|
rubyforge_project:
|
185
|
-
rubygems_version: 1.
|
191
|
+
rubygems_version: 1.5.3
|
186
192
|
signing_key:
|
187
193
|
specification_version: 3
|
188
194
|
summary: Various middleware for Faraday
|
@@ -192,5 +198,7 @@ test_files:
|
|
192
198
|
- spec/oauth2_spec.rb
|
193
199
|
- spec/oauth_spec.rb
|
194
200
|
- spec/parse_json_spec.rb
|
201
|
+
- spec/parse_marshal_spec.rb
|
195
202
|
- spec/parse_xml_spec.rb
|
203
|
+
- spec/parse_yaml_spec.rb
|
196
204
|
- spec/rashify_spec.rb
|