omniauth-angellist 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6d530ade385dc3df172a2f9a83e5ff72c7d46402
4
+ data.tar.gz: 8ebce9e696ee72b5341176a953eed15635d1bdd3
5
+ SHA512:
6
+ metadata.gz: e3edfac6c3e87c3a691746ed0a8a010037981e748284f6d826d33e7686bd91f94211719c2b16aa98890ef62e71bed319fb3472b4a5e77159867b568ae728fd12
7
+ data.tar.gz: 1a33d45dec6714fe2e2c8621b2a9883b3a2de32027dabde5ca8debcd041780be3751405a8df1f25b4207ae7ee6cd0f70f5c8fa46803489c1e60c54da8a649c78
@@ -1,13 +1,21 @@
1
- require 'omniauth-oauth2'
1
+ require 'omniauth/strategies/oauth2'
2
2
 
3
3
  module OmniAuth
4
4
  module Strategies
5
5
  class AngelList < OmniAuth::Strategies::OAuth2
6
+ DEFAULT_SCOPE = 'email'
7
+
6
8
  option :client_options, {
7
9
  :site => 'https://angel.co/',
8
10
  :authorize_url => 'https://angel.co/api/oauth/authorize',
9
11
  :token_url => 'https://angel.co/api/oauth/token'
10
12
  }
13
+
14
+ option :access_token_options, {
15
+ :mode => :qury,
16
+ :header_format => 'OAuth %s'
17
+ }
18
+
11
19
  option :provider_ignores_state, true
12
20
 
13
21
  def request_phase
@@ -27,18 +35,32 @@ module OmniAuth
27
35
  "facebook_url" => raw_info["facebook_url"],
28
36
  "linkedin_url" => raw_info["linkedin_url"],
29
37
  "follower_count" => raw_info["follower_count"],
30
- "angellist_url" => raw_info["angellist_url"],
31
- "image" => raw_info["image"],
38
+ "investor" => raw_info["investor"],
32
39
  "locations" => raw_info["locations"],
33
- "roles" => raw_info["roles"]
40
+ "roles" => raw_info["roles"],
41
+ "angellist_url" => raw_info["angellist_url"],
42
+ "image" => raw_info["image"]
34
43
  }
35
44
  end
36
45
 
37
46
  def raw_info
38
- access_token.options[:mode] = :query
39
- (access_token.options || {}).merge!({:header_format => 'OAuth %s'})
40
47
  @raw_info ||= access_token.get('https://api.angel.co/1/me').parsed
41
48
  end
49
+
50
+ def authorize_params
51
+ super.tap do |params|
52
+ %w[scope state].each do |v|
53
+ if request.params[v]
54
+ params[v.to_sym] = request.params[v]
55
+
56
+ # to support omniauth-oauth2's auto csrf protection
57
+ session['omniauth.state'] = params[:state] if v == 'state'
58
+ end
59
+ end
60
+
61
+ params[:scope] ||= DEFAULT_SCOPE
62
+ end
63
+ end
42
64
  end
43
65
  end
44
66
  end
@@ -1,5 +1,5 @@
1
1
  module Omniauth
2
2
  module AngelList
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
@@ -18,8 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
20
 
21
- s.add_dependency 'omniauth', '~> 1.0'
22
- s.add_dependency 'omniauth-oauth2', '~> 1.1'
21
+ s.add_runtime_dependency 'omniauth-oauth2', '~> 1.1'
23
22
  s.add_development_dependency 'rspec', '~> 2.7'
24
23
  s.add_development_dependency 'rack-test'
25
24
  s.add_development_dependency 'simplecov'
@@ -5,6 +5,8 @@ describe OmniAuth::Strategies::AngelList do
5
5
  before :each do
6
6
  @request = double('Request')
7
7
  @request.stub(:params) { {} }
8
+ @client_id = '123'
9
+ @client_secret = 'afalsf'
8
10
  end
9
11
 
10
12
  subject do
@@ -34,8 +36,30 @@ describe OmniAuth::Strategies::AngelList do
34
36
  before :each do
35
37
  @raw_info = {
36
38
  'name' => 'Sebastian Rabuini',
39
+ 'email' => 'sebas@wasabit.com.ar',
37
40
  'bio' => 'Sebas',
38
- 'image' => 'foto',
41
+ 'blog_url' => 'sebas_blog',
42
+ 'online_bio_url' => 'http://wasabitlabs.com',
43
+ 'twitter_url' => 'http://twitter.com/#!/sebasr',
44
+ 'facebook_url' => 'http://www.facebook.com/sebastian.rabuini',
45
+ 'linkedin_url' => 'http://www.linkedin.com/in/srabuini',
46
+ 'follower_count' => 6,
47
+ 'investor' => false,
48
+ 'locations' => [
49
+ {'id' => 1963, 'tag_type' => 'LocationTag', 'name' => 'buenos aires',
50
+ 'display_name' => 'Buenos Aires',
51
+ 'angellist_url' => 'https://angel.co/buenos-aires'}
52
+ ],
53
+ 'roles' => [
54
+ {'id' => 14726, 'tag_type' => 'RoleTag', 'name' => 'developer',
55
+ 'display_name' => 'Developer',
56
+ 'angellist_url' => 'https://angel.co/developer'},
57
+ {'id' => 14725, 'tag_type' => 'RoleTag', 'name' => 'entrepreneur',
58
+ 'display_name' => 'Entrepreneur',
59
+ 'angellist_url' => 'https://angel.co/entrepreneur-1'}
60
+ ],
61
+ 'angellist_url' => 'https://angel.co/sebasr',
62
+ 'image' => 'https://s3.amazonaws.com/photos.angel.co/users/90585-medium_jpg?1327684569'
39
63
  }
40
64
  subject.stub(:raw_info) { @raw_info }
41
65
  end
@@ -50,15 +74,24 @@ describe OmniAuth::Strategies::AngelList do
50
74
  end
51
75
 
52
76
  it 'returns the image' do
53
- subject.info['image'].should eq('foto')
77
+ subject.info['image'].should eq(@raw_info['image'])
54
78
  end
55
79
 
56
- it "sets the email blank if contact block is missing in raw_info" do
57
- @raw_info.delete('contact')
58
- subject.info['email'].should be_nil
80
+ it "return the email" do
81
+ subject.info['email'].should eq('sebas@wasabit.com.ar')
59
82
  end
60
83
  end
61
84
  end
85
+
86
+ describe '#authorize_params' do
87
+ before :each do
88
+ subject.stub(:session => {})
89
+ end
90
+
91
+ it 'includes default scope for email' do
92
+ subject.authorize_params['scope'].should eq('email')
93
+ end
94
+ end
62
95
 
63
96
  describe '#credentials' do
64
97
  before :each do
metadata CHANGED
@@ -1,36 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-angellist
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 0.0.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Sebastian Rabuini
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-17 00:00:00.000000000 Z
11
+ date: 2013-06-23 00:00:00.000000000 Z
13
12
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: omniauth
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '1.0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- version: '1.0'
30
13
  - !ruby/object:Gem::Dependency
31
14
  name: omniauth-oauth2
32
15
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
16
  requirements:
35
17
  - - ~>
36
18
  - !ruby/object:Gem::Version
@@ -38,7 +20,6 @@ dependencies:
38
20
  type: :runtime
39
21
  prerelease: false
40
22
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
23
  requirements:
43
24
  - - ~>
44
25
  - !ruby/object:Gem::Version
@@ -46,7 +27,6 @@ dependencies:
46
27
  - !ruby/object:Gem::Dependency
47
28
  name: rspec
48
29
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
30
  requirements:
51
31
  - - ~>
52
32
  - !ruby/object:Gem::Version
@@ -54,7 +34,6 @@ dependencies:
54
34
  type: :development
55
35
  prerelease: false
56
36
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
37
  requirements:
59
38
  - - ~>
60
39
  - !ruby/object:Gem::Version
@@ -62,49 +41,43 @@ dependencies:
62
41
  - !ruby/object:Gem::Dependency
63
42
  name: rack-test
64
43
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
44
  requirements:
67
- - - ! '>='
45
+ - - '>='
68
46
  - !ruby/object:Gem::Version
69
47
  version: '0'
70
48
  type: :development
71
49
  prerelease: false
72
50
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
51
  requirements:
75
- - - ! '>='
52
+ - - '>='
76
53
  - !ruby/object:Gem::Version
77
54
  version: '0'
78
55
  - !ruby/object:Gem::Dependency
79
56
  name: simplecov
80
57
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
58
  requirements:
83
- - - ! '>='
59
+ - - '>='
84
60
  - !ruby/object:Gem::Version
85
61
  version: '0'
86
62
  type: :development
87
63
  prerelease: false
88
64
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
65
  requirements:
91
- - - ! '>='
66
+ - - '>='
92
67
  - !ruby/object:Gem::Version
93
68
  version: '0'
94
69
  - !ruby/object:Gem::Dependency
95
70
  name: webmock
96
71
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
72
  requirements:
99
- - - ! '>='
73
+ - - '>='
100
74
  - !ruby/object:Gem::Version
101
75
  version: '0'
102
76
  type: :development
103
77
  prerelease: false
104
78
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
79
  requirements:
107
- - - ! '>='
80
+ - - '>='
108
81
  - !ruby/object:Gem::Version
109
82
  version: '0'
110
83
  description: AngelList OAuth strategy for OmniAuth
@@ -127,30 +100,28 @@ files:
127
100
  - spec/support/shared_examples.rb
128
101
  homepage: https://github.com/wasabit/omniauth-angellist
129
102
  licenses: []
103
+ metadata: {}
130
104
  post_install_message:
131
105
  rdoc_options: []
132
106
  require_paths:
133
107
  - lib
134
108
  required_ruby_version: !ruby/object:Gem::Requirement
135
- none: false
136
109
  requirements:
137
- - - ! '>='
110
+ - - '>='
138
111
  - !ruby/object:Gem::Version
139
112
  version: '0'
140
113
  required_rubygems_version: !ruby/object:Gem::Requirement
141
- none: false
142
114
  requirements:
143
- - - ! '>='
115
+ - - '>='
144
116
  - !ruby/object:Gem::Version
145
117
  version: '0'
146
118
  requirements: []
147
119
  rubyforge_project: omniauth-angellist
148
- rubygems_version: 1.8.25
120
+ rubygems_version: 2.0.3
149
121
  signing_key:
150
- specification_version: 3
122
+ specification_version: 4
151
123
  summary: AngelList OAuth strategy for OmniAuth
152
124
  test_files:
153
125
  - spec/omniauth/strategies/angellist_spec.rb
154
126
  - spec/spec_helper.rb
155
127
  - spec/support/shared_examples.rb
156
- has_rdoc: