omniauth-angellist 0.0.3 → 0.0.4

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.
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: