omniauth-geekpark 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +15 -0
  2. data/Gemfile +12 -0
  3. data/Gemfile.lock +118 -0
  4. data/Guardfile +10 -0
  5. data/README.md +11 -0
  6. data/Rakefile +8 -0
  7. data/coverage/.last_run.json +5 -0
  8. data/coverage/.resultset.json +47 -0
  9. data/coverage/.resultset.json.lock +0 -0
  10. data/coverage/assets/0.9.0/application.css +799 -0
  11. data/coverage/assets/0.9.0/application.js +1707 -0
  12. data/coverage/assets/0.9.0/colorbox/border.png +0 -0
  13. data/coverage/assets/0.9.0/colorbox/controls.png +0 -0
  14. data/coverage/assets/0.9.0/colorbox/loading.gif +0 -0
  15. data/coverage/assets/0.9.0/colorbox/loading_background.png +0 -0
  16. data/coverage/assets/0.9.0/favicon_green.png +0 -0
  17. data/coverage/assets/0.9.0/favicon_red.png +0 -0
  18. data/coverage/assets/0.9.0/favicon_yellow.png +0 -0
  19. data/coverage/assets/0.9.0/loading.gif +0 -0
  20. data/coverage/assets/0.9.0/magnify.png +0 -0
  21. data/coverage/assets/0.9.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  22. data/coverage/assets/0.9.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  23. data/coverage/assets/0.9.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  24. data/coverage/assets/0.9.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  25. data/coverage/assets/0.9.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  26. data/coverage/assets/0.9.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  27. data/coverage/assets/0.9.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  28. data/coverage/assets/0.9.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  29. data/coverage/assets/0.9.0/smoothness/images/ui-icons_222222_256x240.png +0 -0
  30. data/coverage/assets/0.9.0/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  31. data/coverage/assets/0.9.0/smoothness/images/ui-icons_454545_256x240.png +0 -0
  32. data/coverage/assets/0.9.0/smoothness/images/ui-icons_888888_256x240.png +0 -0
  33. data/coverage/assets/0.9.0/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  34. data/coverage/index.html +344 -0
  35. data/lib/omniauth/strategies/geekpark.rb +34 -0
  36. data/lib/omniauth-geekpark/version.rb +5 -0
  37. data/lib/omniauth-geekpark.rb +2 -0
  38. data/omniauth-geekpark.gemspec +27 -0
  39. data/spec/omniauth/strategies/geekpark_spec.rb +29 -0
  40. data/spec/spec_helper.rb +16 -0
  41. metadata +175 -0
Binary file
Binary file
@@ -0,0 +1,344 @@
1
+ <!DOCTYPE html>
2
+ <html xmlns='http://www.w3.org/1999/xhtml'>
3
+ <head>
4
+ <title>Code coverage for Omniauth-geekpark</title>
5
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
6
+ <script src='./assets/0.9.0/application.js' type='text/javascript'></script>
7
+ <link href='./assets/0.9.0/application.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
8
+ <link rel="shortcut icon" type="image/png" href="./assets/0.9.0/favicon_yellow.png" />
9
+ <link rel="icon" type="image/png" href="./assets/0.9.0/favicon.png" />
10
+ </head>
11
+
12
+ <body>
13
+ <div id="loading">
14
+ <img src="./assets/0.9.0/loading.gif" alt="loading"/>
15
+ </div>
16
+ <div id="wrapper" style="display:none;">
17
+ <div class="timestamp">Generated <abbr class="timeago" title="2015-04-08T12:44:41+08:00">2015-04-08T12:44:41+08:00</abbr></div>
18
+ <ul class="group_tabs"></ul>
19
+
20
+ <div id="content">
21
+ <div class="file_list_container" id="AllFiles">
22
+ <h2>
23
+ <span class="group_name">All Files</span>
24
+ (<span class="covered_percent"><span class="yellow">84.62%</span></span>
25
+ covered at
26
+ <span class="covered_strength">
27
+ <span class="red">
28
+ 0.83
29
+ </span>
30
+ </span> hits/line)
31
+ </h2>
32
+ <a name="AllFiles"></a>
33
+ <div>
34
+ <b>2</b> files in total.
35
+ <b>13</b> relevant lines.
36
+ <span class="green"><b>11</b> lines covered</span> and
37
+ <span class="red"><b>2</b> lines missed </span>
38
+ </div>
39
+ <table class="file_list">
40
+ <thead>
41
+ <tr>
42
+ <th>File</th>
43
+ <th>% covered</th>
44
+ <th>Lines</th>
45
+ <th>Relevant Lines</th>
46
+ <th>Lines covered</th>
47
+ <th>Lines missed</th>
48
+ <th>Avg. Hits / Line</th>
49
+ </tr>
50
+ </thead>
51
+ <tbody>
52
+
53
+ <tr>
54
+ <td class="strong"><a href="#f35acb06d7cfe70e9b3207c153e5c06d4e0179ae" class="src_link" title="lib/omniauth-geekpark.rb">lib/omniauth-geekpark.rb</a></td>
55
+ <td class="green strong">100.0 %</td>
56
+ <td>2</td>
57
+ <td>2</td>
58
+ <td>2</td>
59
+ <td>0</td>
60
+ <td>1.0</td>
61
+ </tr>
62
+
63
+ <tr>
64
+ <td class="strong"><a href="#8139efd0f0baa4ccc65ab08aba3477f3a2fcdb3b" class="src_link" title="lib/omniauth/strategies/geekpark.rb">lib/omniauth/strategies/geekpark.rb</a></td>
65
+ <td class="yellow strong">81.82 %</td>
66
+ <td>34</td>
67
+ <td>11</td>
68
+ <td>9</td>
69
+ <td>2</td>
70
+ <td>0.8</td>
71
+ </tr>
72
+
73
+ </tbody>
74
+ </table>
75
+ </div>
76
+
77
+
78
+
79
+ </div>
80
+
81
+ <div id="footer">
82
+ Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.9.2
83
+ and simplecov-html v0.9.0<br/>
84
+ using RSpec
85
+ </div>
86
+
87
+ <div class="source_files">
88
+
89
+ <div class="source_table" id="f35acb06d7cfe70e9b3207c153e5c06d4e0179ae">
90
+ <div class="header">
91
+ <h3>lib/omniauth-geekpark.rb</h3>
92
+ <h4><span class="green">100.0 %</span> covered</h4>
93
+ <div>
94
+ <b>2</b> relevant lines.
95
+ <span class="green"><b>2</b> lines covered</span> and
96
+ <span class="red"><b>0</b> lines missed.</span>
97
+ </div>
98
+ </div>
99
+
100
+ <pre>
101
+ <ol>
102
+
103
+ <li class="covered" data-hits="1" data-linenumber="1">
104
+ <span class="hits">1</span>
105
+
106
+ <code class="ruby">require &quot;omniauth-geekpark/version&quot;</code>
107
+ </li>
108
+
109
+ <li class="covered" data-hits="1" data-linenumber="2">
110
+ <span class="hits">1</span>
111
+
112
+ <code class="ruby">require 'omniauth/strategies/geekpark'</code>
113
+ </li>
114
+
115
+ </ol>
116
+ </pre>
117
+ </div>
118
+
119
+ <div class="source_table" id="8139efd0f0baa4ccc65ab08aba3477f3a2fcdb3b">
120
+ <div class="header">
121
+ <h3>lib/omniauth/strategies/geekpark.rb</h3>
122
+ <h4><span class="yellow">81.82 %</span> covered</h4>
123
+ <div>
124
+ <b>11</b> relevant lines.
125
+ <span class="green"><b>9</b> lines covered</span> and
126
+ <span class="red"><b>2</b> lines missed.</span>
127
+ </div>
128
+ </div>
129
+
130
+ <pre>
131
+ <ol>
132
+
133
+ <li class="covered" data-hits="1" data-linenumber="1">
134
+ <span class="hits">1</span>
135
+
136
+ <code class="ruby">require 'omniauth-oauth2'</code>
137
+ </li>
138
+
139
+ <li class="never" data-hits="" data-linenumber="2">
140
+
141
+
142
+ <code class="ruby"></code>
143
+ </li>
144
+
145
+ <li class="covered" data-hits="1" data-linenumber="3">
146
+ <span class="hits">1</span>
147
+
148
+ <code class="ruby">module OmniAuth</code>
149
+ </li>
150
+
151
+ <li class="covered" data-hits="1" data-linenumber="4">
152
+ <span class="hits">1</span>
153
+
154
+ <code class="ruby"> module Strategies</code>
155
+ </li>
156
+
157
+ <li class="covered" data-hits="1" data-linenumber="5">
158
+ <span class="hits">1</span>
159
+
160
+ <code class="ruby"> class GeekPark &lt; OmniAuth::Strategies::OAuth2</code>
161
+ </li>
162
+
163
+ <li class="covered" data-hits="1" data-linenumber="6">
164
+ <span class="hits">1</span>
165
+
166
+ <code class="ruby"> option :client_options, {</code>
167
+ </li>
168
+
169
+ <li class="never" data-hits="" data-linenumber="7">
170
+
171
+
172
+ <code class="ruby"> site: 'http://www.geekpark.net',</code>
173
+ </li>
174
+
175
+ <li class="never" data-hits="" data-linenumber="8">
176
+
177
+
178
+ <code class="ruby"> authorize_url: 'http://www.geekpark.net/oauth2/authorize',</code>
179
+ </li>
180
+
181
+ <li class="never" data-hits="" data-linenumber="9">
182
+
183
+
184
+ <code class="ruby"> token_url: 'http://www.geekpark.net/oauth2/token'</code>
185
+ </li>
186
+
187
+ <li class="never" data-hits="" data-linenumber="10">
188
+
189
+
190
+ <code class="ruby"> }</code>
191
+ </li>
192
+
193
+ <li class="never" data-hits="" data-linenumber="11">
194
+
195
+
196
+ <code class="ruby"></code>
197
+ </li>
198
+
199
+ <li class="covered" data-hits="1" data-linenumber="12">
200
+ <span class="hits">1</span>
201
+
202
+ <code class="ruby"> uid { raw_info['id'].to_s }</code>
203
+ </li>
204
+
205
+ <li class="never" data-hits="" data-linenumber="13">
206
+
207
+
208
+ <code class="ruby"></code>
209
+ </li>
210
+
211
+ <li class="covered" data-hits="1" data-linenumber="14">
212
+ <span class="hits">1</span>
213
+
214
+ <code class="ruby"> info do</code>
215
+ </li>
216
+
217
+ <li class="never" data-hits="" data-linenumber="15">
218
+
219
+
220
+ <code class="ruby"> {</code>
221
+ </li>
222
+
223
+ <li class="never" data-hits="" data-linenumber="16">
224
+
225
+
226
+ <code class="ruby"> 'username' =&gt; raw_info['username'],</code>
227
+ </li>
228
+
229
+ <li class="never" data-hits="" data-linenumber="17">
230
+
231
+
232
+ <code class="ruby"> 'realname' =&gt; raw_info['realname'],</code>
233
+ </li>
234
+
235
+ <li class="never" data-hits="" data-linenumber="18">
236
+
237
+
238
+ <code class="ruby"> 'email' =&gt; raw_info['email'],</code>
239
+ </li>
240
+
241
+ <li class="never" data-hits="" data-linenumber="19">
242
+
243
+
244
+ <code class="ruby"> 'company' =&gt; raw_info['company'],</code>
245
+ </li>
246
+
247
+ <li class="never" data-hits="" data-linenumber="20">
248
+
249
+
250
+ <code class="ruby"> 'position' =&gt; raw_info['position'],</code>
251
+ </li>
252
+
253
+ <li class="never" data-hits="" data-linenumber="21">
254
+
255
+
256
+ <code class="ruby"> 'mobile' =&gt; raw_info['mobile'],</code>
257
+ </li>
258
+
259
+ <li class="never" data-hits="" data-linenumber="22">
260
+
261
+
262
+ <code class="ruby"> 'avatar' =&gt; raw_info['avatar']['url'],</code>
263
+ </li>
264
+
265
+ <li class="never" data-hits="" data-linenumber="23">
266
+
267
+
268
+ <code class="ruby"> 'bio' =&gt; raw_info['bio'],</code>
269
+ </li>
270
+
271
+ <li class="missed" data-hits="0" data-linenumber="24">
272
+
273
+
274
+ <code class="ruby"> }</code>
275
+ </li>
276
+
277
+ <li class="never" data-hits="" data-linenumber="25">
278
+
279
+
280
+ <code class="ruby"> end</code>
281
+ </li>
282
+
283
+ <li class="never" data-hits="" data-linenumber="26">
284
+
285
+
286
+ <code class="ruby"></code>
287
+ </li>
288
+
289
+ <li class="covered" data-hits="1" data-linenumber="27">
290
+ <span class="hits">1</span>
291
+
292
+ <code class="ruby"> def raw_info</code>
293
+ </li>
294
+
295
+ <li class="missed" data-hits="0" data-linenumber="28">
296
+
297
+
298
+ <code class="ruby"> @raw_info ||= access_token.user.as_json({only: [:id, :username, :realname, :email, :avatar, :company, :position, :mobile, :bio]})</code>
299
+ </li>
300
+
301
+ <li class="never" data-hits="" data-linenumber="29">
302
+
303
+
304
+ <code class="ruby"> end</code>
305
+ </li>
306
+
307
+ <li class="never" data-hits="" data-linenumber="30">
308
+
309
+
310
+ <code class="ruby"> end</code>
311
+ </li>
312
+
313
+ <li class="never" data-hits="" data-linenumber="31">
314
+
315
+
316
+ <code class="ruby"> end</code>
317
+ </li>
318
+
319
+ <li class="never" data-hits="" data-linenumber="32">
320
+
321
+
322
+ <code class="ruby">end</code>
323
+ </li>
324
+
325
+ <li class="never" data-hits="" data-linenumber="33">
326
+
327
+
328
+ <code class="ruby"></code>
329
+ </li>
330
+
331
+ <li class="covered" data-hits="1" data-linenumber="34">
332
+ <span class="hits">1</span>
333
+
334
+ <code class="ruby">OmniAuth.config.add_camelization 'geekpark', 'GeekPark'</code>
335
+ </li>
336
+
337
+ </ol>
338
+ </pre>
339
+ </div>
340
+
341
+ </div>
342
+ </div>
343
+ </body>
344
+ </html>
@@ -0,0 +1,34 @@
1
+ require 'omniauth-oauth2'
2
+
3
+ module OmniAuth
4
+ module Strategies
5
+ class GeekPark < OmniAuth::Strategies::OAuth2
6
+ option :client_options, {
7
+ site: 'http://www.geekpark.net',
8
+ authorize_url: 'http://www.geekpark.net/oauth2/authorize',
9
+ token_url: 'http://www.geekpark.net/oauth2/token'
10
+ }
11
+
12
+ uid { raw_info['id'].to_s }
13
+
14
+ info do
15
+ {
16
+ 'username' => raw_info['username'],
17
+ 'realname' => raw_info['realname'],
18
+ 'email' => raw_info['email'],
19
+ 'company' => raw_info['company'],
20
+ 'position' => raw_info['position'],
21
+ 'mobile' => raw_info['mobile'],
22
+ 'avatar' => raw_info['avatar']['url'],
23
+ 'bio' => raw_info['bio'],
24
+ }
25
+ end
26
+
27
+ def raw_info
28
+ @raw_info ||= access_token.user.as_json({only: [:id, :username, :realname, :email, :avatar, :company, :position, :mobile, :bio]})
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ OmniAuth.config.add_camelization 'geekpark', 'GeekPark'
@@ -0,0 +1,5 @@
1
+ module OmniAuth
2
+ module GeekPark
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,2 @@
1
+ require "omniauth-geekpark/version"
2
+ require 'omniauth/strategies/geekpark'
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/omniauth-geekpark/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["HaoYunfei"]
6
+ gem.email = ["cloudy9101@126.com"]
7
+ gem.description = %q{Official OmniAuth strategy for GeekPark.}
8
+ gem.summary = %q{Official OmniAuth strategy for GeekPark.}
9
+ gem.homepage = "http://www.geekpark.net"
10
+ gem.license = "MIT"
11
+
12
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
13
+ gem.files = `git ls-files`.split("\n")
14
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
+ gem.name = "omniauth-geekpark"
16
+ gem.require_paths = ["lib"]
17
+ gem.version = OmniAuth::GeekPark::VERSION
18
+
19
+ gem.add_dependency 'omniauth', '~> 1.0'
20
+ # Nothing lower than omniauth-oauth2 1.1.1
21
+ # http://www.rubysec.com/advisories/CVE-2012-6134/
22
+ gem.add_dependency 'omniauth-oauth2', '>= 1.1.1', '< 2.0'
23
+ gem.add_development_dependency 'rspec', '~> 2.7'
24
+ gem.add_development_dependency 'rack-test'
25
+ gem.add_development_dependency 'simplecov'
26
+ gem.add_development_dependency 'webmock'
27
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe OmniAuth::Strategies::GeekPark do
4
+ let(:access_token) { double('AccessToken', options: {}) }
5
+ let(:parsed_response) { double('ParsedResponse') }
6
+ let(:response) { double('Response', parsed: parsed_response) }
7
+
8
+ subject do
9
+ OmniAuth::Strategies::GeekPark.new({})
10
+ end
11
+
12
+ before(:each) do
13
+ subject.stub(:access_token).and_return(access_token)
14
+ end
15
+
16
+ context 'client options' do
17
+ it 'should have correct site' do
18
+ subject.options.client_options.site.should eq('http://www.geekpark.net')
19
+ end
20
+
21
+ it 'should have correct authorize url' do
22
+ subject.options.client_options.authorize_url.should eq('http://www.geekpark.net/oauth2/authorize')
23
+ end
24
+
25
+ it 'should have corrent token url' do
26
+ subject.options.client_options.token_url.should eq('http://www.geekpark.net/oauth2/token')
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,16 @@
1
+ $:.unshift File.expand_path('..', __FILE__)
2
+ $:.unshift File.expand_path('../../lib', __FILE__)
3
+ require 'simplecov'
4
+ SimpleCov.start
5
+ require 'rspec'
6
+ require 'rack/test'
7
+ require 'webmock/rspec'
8
+ require 'omniauth'
9
+ require 'omniauth-geekpark'
10
+
11
+ RSpec.configure do |config|
12
+ config.include WebMock::API
13
+ config.include Rack::Test::Methods
14
+ config.extend OmniAuth::Test::StrategyMacros, type: :strategy
15
+ end
16
+