foauth 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ --markup markdown
data/README.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  [foauth.org][foauth] Ruby client built on top of [faraday][].
4
4
 
5
+ ## Prerequisites
6
+
7
+ To use this gem you'll need to go to [foauth.org][foauth] and register
8
+ for an account, then go to the [services page][foauth services] and
9
+ authenticate with the services you want to get your data out of.
10
+
5
11
  ## Installation
6
12
 
7
13
  Add this line to your application's Gemfile:
@@ -38,9 +44,29 @@ puts response.body # [{"created_at":"Mon Dec 31 23:59:13 +0000 2012"...
38
44
  puts response.status # 200
39
45
  ```
40
46
 
47
+ ### Faraday
48
+
41
49
  The `client` returned is an instance of `Faraday::Connection` and the
42
- `response` is an instance of `Faraday::Response`. See [faraday][] for
43
- more information.
50
+ `response` is an instance of `Faraday::Response`.
51
+
52
+ You can pass a block to `Foauth.new` which will yield a
53
+ `Faraday::Builder` instance. This allows you to customize middleware
54
+ and change the default http adapter.
55
+
56
+ For example, if you want `response.body` to be automatically decoded for
57
+ you then add `faraday_middleware` to your `Gemfile` and use the
58
+ following code to add the json and xml parsing middleware.
59
+
60
+ ```ruby
61
+ require 'faraday_middleware'
62
+
63
+ client = Foauth.new 'bob@example.org', 'secret' do |builder|
64
+ builder.response :json, :content_type => /\bjson$/
65
+ builder.response :xml, :content_type => /\bxml$/
66
+ end
67
+ ```
68
+
69
+ See [faraday][] for more information.
44
70
 
45
71
  ## Contributing
46
72
 
@@ -52,6 +78,10 @@ more information.
52
78
 
53
79
  ## Version history
54
80
 
81
+ **0.2.2** (January 6, 2013)
82
+
83
+ * Documentation updates
84
+
55
85
  **0.2.1** (January 5, 2013)
56
86
 
57
87
  * Make sure client works without blocks
data/lib/foauth.rb CHANGED
@@ -1,15 +1,36 @@
1
1
  require 'faraday'
2
-
3
2
  require 'foauth/version'
4
- require 'foauth/rewrite_middleware'
5
3
 
6
4
  module Foauth
7
- def self.new(email, password, &block)
5
+ Faraday.register_middleware :request, :foauth_proxy => lambda { Proxy }
6
+
7
+ # Creates a new `Faraday` instance using the given `email` and `password`.
8
+ #
9
+ # @param [String] email Your foauth.org email address.
10
+ # @param [String] password Your foauth.org password.
11
+ # @yield [builder] Passes the `Faraday::Builder` instance to the block if given.
12
+ # @return [Faraday::Connection] Configured to proxy requests to foauth.org.
13
+ def self.new(email, password)
8
14
  Faraday.new do |builder|
15
+ builder.request :foauth_proxy
9
16
  builder.request :basic_auth, email, password
10
- builder.use RewriteMiddleware
11
17
  builder.adapter Faraday.default_adapter
12
- block.call(builder) if block_given?
18
+ yield builder if block_given?
19
+ end
20
+ end
21
+
22
+ class Proxy < Faraday::Middleware
23
+ def call(env)
24
+ env[:url] = foauth_proxy_url(env[:url])
25
+ @app.call(env)
26
+ end
27
+
28
+ private
29
+
30
+ def foauth_proxy_url(url)
31
+ uri = URI.parse("https://foauth.org/#{url.host}#{url.path}")
32
+ uri.query = url.query
33
+ uri
13
34
  end
14
35
  end
15
36
  end
@@ -1,3 +1,3 @@
1
1
  module Foauth
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -1,9 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Foauth::RewriteMiddleware do
3
+ describe Foauth::Proxy do
4
4
  let(:conn) do
5
5
  Faraday.new do |builder|
6
- builder.use Foauth::RewriteMiddleware
6
+ builder.request :foauth_proxy
7
7
  builder.adapter :test do |stub|
8
8
  stub.get('/api.twitter.com/1/statuses/user_timeline.json') {[ 200, {}, '{}' ]}
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-05 00:00:00.000000000 Z
12
+ date: 2013-01-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -52,13 +52,13 @@ extra_rdoc_files: []
52
52
  files:
53
53
  - .gitignore
54
54
  - .rspec
55
+ - .yardopts
55
56
  - Gemfile
56
57
  - LICENSE.txt
57
58
  - README.md
58
59
  - Rakefile
59
60
  - foauth.gemspec
60
61
  - lib/foauth.rb
61
- - lib/foauth/rewrite_middleware.rb
62
62
  - lib/foauth/version.rb
63
63
  - spec/client_spec.rb
64
64
  - spec/middleware_spec.rb
@@ -91,3 +91,4 @@ test_files:
91
91
  - spec/client_spec.rb
92
92
  - spec/middleware_spec.rb
93
93
  - spec/spec_helper.rb
94
+ has_rdoc:
@@ -1,12 +0,0 @@
1
- require 'faraday'
2
-
3
- module Foauth
4
- class RewriteMiddleware < Faraday::Middleware
5
- def call(env)
6
- url = env[:url]
7
- env[:url] = URI.parse("https://foauth.org/#{url.host}#{url.path}")
8
- env[:url].query = url.query
9
- @app.call(env)
10
- end
11
- end
12
- end