oa-oauth 0.0.5 → 0.1.0

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.
@@ -10,5 +10,6 @@ module OmniAuth
10
10
  autoload :Facebook, 'omniauth/strategies/facebook'
11
11
  autoload :GitHub, 'omniauth/strategies/github'
12
12
  autoload :ThirtySevenSignals, 'omniauth/strategies/thirty_seven_signals'
13
+ autoload :Foursquare, 'omniauth/strategies/foursquare'
13
14
  end
14
15
  end
@@ -0,0 +1,39 @@
1
+ module OmniAuth
2
+ module Strategies
3
+ class Foursquare < OAuth
4
+ def initialize(app, consumer_key, consumer_secret)
5
+ super(app, :foursquare, consumer_key, consumer_secret,
6
+ :site => 'http://foursquare.com')
7
+ end
8
+
9
+ def auth_hash
10
+ OmniAuth::Utils.deep_merge(super, {
11
+ 'uid' => user_hash['id'],
12
+ 'user_info' => user_info,
13
+ 'extra' => {'user_hash' => user_hash}
14
+ })
15
+ end
16
+
17
+ def user_info
18
+ user_hash = self.user_hash
19
+
20
+ {
21
+ 'nickname' => user_hash['twitter'],
22
+ 'first_name' => user_hash['firstname'],
23
+ 'last_name' => user_hash['lastname'],
24
+ 'email' => user_hash['email'],
25
+ 'name' => "#{user_hash['firstname']} #{user_hash['lastname']}".strip,
26
+ # 'location' => user_hash['location'],
27
+ 'image' => user_hash['photo'],
28
+ # 'description' => user_hash['description'],
29
+ 'phone' => user_hash['phone'],
30
+ 'urls' => {}
31
+ }
32
+ end
33
+
34
+ def user_hash
35
+ @user_hash ||= MultiJson.decode(@access_token.get('http://api.foursquare.com/v1/user.json').body)['user']
36
+ end
37
+ end
38
+ end
39
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oa-oauth
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
+ - 1
8
9
  - 0
9
- - 5
10
- version: 0.0.5
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michael Bleigh
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-09-01 00:00:00 -05:00
18
+ date: 2010-10-01 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -24,12 +24,12 @@ dependencies:
24
24
  requirements:
25
25
  - - "="
26
26
  - !ruby/object:Gem::Version
27
- hash: 21
27
+ hash: 27
28
28
  segments:
29
29
  - 0
30
+ - 1
30
31
  - 0
31
- - 5
32
- version: 0.0.5
32
+ version: 0.1.0
33
33
  requirement: *id001
34
34
  name: oa-core
35
35
  prerelease: false
@@ -203,6 +203,7 @@ extra_rdoc_files: []
203
203
  files:
204
204
  - lib/omniauth/oauth.rb
205
205
  - lib/omniauth/strategies/facebook.rb
206
+ - lib/omniauth/strategies/foursquare.rb
206
207
  - lib/omniauth/strategies/github.rb
207
208
  - lib/omniauth/strategies/linked_in.rb
208
209
  - lib/omniauth/strategies/oauth.rb