foreverman-authlogic-connect 0.0.1

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.
Files changed (62) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.markdown +234 -0
  3. data/Rakefile +85 -0
  4. data/init.rb +1 -0
  5. data/lib/authlogic-connect.rb +39 -0
  6. data/lib/authlogic_connect/access_token.rb +61 -0
  7. data/lib/authlogic_connect/authlogic_connect.rb +46 -0
  8. data/lib/authlogic_connect/callback_filter.rb +19 -0
  9. data/lib/authlogic_connect/common.rb +10 -0
  10. data/lib/authlogic_connect/common/session.rb +30 -0
  11. data/lib/authlogic_connect/common/state.rb +45 -0
  12. data/lib/authlogic_connect/common/user.rb +77 -0
  13. data/lib/authlogic_connect/common/variables.rb +124 -0
  14. data/lib/authlogic_connect/engine.rb +14 -0
  15. data/lib/authlogic_connect/ext.rb +56 -0
  16. data/lib/authlogic_connect/oauth.rb +14 -0
  17. data/lib/authlogic_connect/oauth/helper.rb +20 -0
  18. data/lib/authlogic_connect/oauth/process.rb +75 -0
  19. data/lib/authlogic_connect/oauth/session.rb +62 -0
  20. data/lib/authlogic_connect/oauth/state.rb +60 -0
  21. data/lib/authlogic_connect/oauth/tokens/aol_token.rb +2 -0
  22. data/lib/authlogic_connect/oauth/tokens/facebook_token.rb +11 -0
  23. data/lib/authlogic_connect/oauth/tokens/foursquare_token.rb +15 -0
  24. data/lib/authlogic_connect/oauth/tokens/get_satisfaction_token.rb +9 -0
  25. data/lib/authlogic_connect/oauth/tokens/github_token.rb +14 -0
  26. data/lib/authlogic_connect/oauth/tokens/google_token.rb +41 -0
  27. data/lib/authlogic_connect/oauth/tokens/linked_in_token.rb +19 -0
  28. data/lib/authlogic_connect/oauth/tokens/meetup_token.rb +12 -0
  29. data/lib/authlogic_connect/oauth/tokens/myspace_token.rb +26 -0
  30. data/lib/authlogic_connect/oauth/tokens/netflix_token.rb +10 -0
  31. data/lib/authlogic_connect/oauth/tokens/oauth_token.rb +164 -0
  32. data/lib/authlogic_connect/oauth/tokens/ohloh_token.rb +9 -0
  33. data/lib/authlogic_connect/oauth/tokens/opensocial_token.rb +0 -0
  34. data/lib/authlogic_connect/oauth/tokens/twitter_token.rb +8 -0
  35. data/lib/authlogic_connect/oauth/tokens/vimeo_token.rb +18 -0
  36. data/lib/authlogic_connect/oauth/tokens/yahoo_token.rb +19 -0
  37. data/lib/authlogic_connect/oauth/user.rb +64 -0
  38. data/lib/authlogic_connect/oauth/variables.rb +64 -0
  39. data/lib/authlogic_connect/openid.rb +11 -0
  40. data/lib/authlogic_connect/openid/process.rb +74 -0
  41. data/lib/authlogic_connect/openid/session.rb +56 -0
  42. data/lib/authlogic_connect/openid/state.rb +48 -0
  43. data/lib/authlogic_connect/openid/tokens/aol_token.rb +0 -0
  44. data/lib/authlogic_connect/openid/tokens/blogger_token.rb +0 -0
  45. data/lib/authlogic_connect/openid/tokens/flickr_token.rb +0 -0
  46. data/lib/authlogic_connect/openid/tokens/my_openid_token.rb +3 -0
  47. data/lib/authlogic_connect/openid/tokens/openid_token.rb +9 -0
  48. data/lib/authlogic_connect/openid/user.rb +38 -0
  49. data/lib/authlogic_connect/openid/variables.rb +19 -0
  50. data/lib/authlogic_connect/rack_state.rb +19 -0
  51. data/lib/open_id_authentication.rb +127 -0
  52. data/rails/init.rb +19 -0
  53. data/test/controllers/test_users_controller.rb +21 -0
  54. data/test/database.yml +3 -0
  55. data/test/libs/database.rb +47 -0
  56. data/test/libs/user.rb +7 -0
  57. data/test/libs/user_session.rb +2 -0
  58. data/test/test_helper.rb +178 -0
  59. data/test/test_oauth.rb +178 -0
  60. data/test/test_openid.rb +71 -0
  61. data/test/test_user.rb +85 -0
  62. metadata +244 -0
@@ -0,0 +1,178 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ module AuthlogicConnect
4
+ class OauthTest < ActiveSupport::TestCase
5
+ context "Oauth (with TwitterToken)" do
6
+ setup do
7
+ @user = User.new(:login => "viatropos")
8
+ controller.params.merge!(:authentication_type => "user")
9
+ Authlogic::Session::Base.controller = controller
10
+
11
+ # this is the only thing the controller passes through for oauth
12
+ @user.auth_controller.params.merge!(:oauth_provider => "twitter")
13
+
14
+ # mock token
15
+ @token = create_token
16
+
17
+ @session_vars = [
18
+ :authentication_type,
19
+ :auth_request_class,
20
+ :oauth_provider,
21
+ :auth_callback_method
22
+ ]
23
+ end
24
+
25
+ context "REQUEST (with TwitterToken)" do
26
+
27
+ should "have an 'oauth_provider'" do
28
+ assert_equal "twitter", @user.auth_params[:oauth_provider]
29
+ assert_equal true, @user.oauth_provider?
30
+ # session hasn't started yet
31
+ assert_equal false, @user.auth_session?
32
+ end
33
+
34
+ should "be an 'oauth_request'" do
35
+ assert_equal true, @user.oauth_request?
36
+ # oauth_request? == (auth_params? && oauth_provider?)
37
+ assert_equal true, @user.auth_params?
38
+ assert_equal true, @user.oauth_provider?
39
+ end
40
+
41
+ should "not be an 'oauth_response'" do
42
+ assert_equal false, @user.oauth_response?
43
+ # oauth_response? == (!oauth_response.nil? && auth_session? && auth_session[:auth_request_class] == self.class.name && auth_session[:auth_method] == "oauth")
44
+ assert_equal false, !@user.oauth_response.nil?
45
+ assert_equal false, @user.auth_session?
46
+ assert_equal false, @user.stored_oauth_token_and_secret?
47
+ end
48
+
49
+ should "be using oauth" do
50
+ # all of the above too!
51
+ assert @user.using_oauth?
52
+ end
53
+
54
+ should "start authentication" do
55
+ assert_equal true, @user.start_authentication?
56
+ # start_authentication? == (start_oauth? || start_openid?)
57
+ assert_equal true, @user.start_oauth?
58
+ # start_oauth == (authenticating_with_oauth? && !oauth_complete?)
59
+ assert_equal true, @user.authenticating_with_oauth?
60
+ # authenticating_with_oauth? == (correct_request_class? && using_oauth?)
61
+ assert_equal true, @user.correct_request_class?
62
+ assert_equal true, @user.using_oauth?
63
+ assert_equal true, !@user.oauth_complete?
64
+ end
65
+
66
+ should "not be using openid" do
67
+ assert_equal false, @user.start_openid?
68
+ assert_equal false, @user.using_openid?
69
+ assert_equal false, @user.openid_request?
70
+ # openid_request? == (!openid_identifier.blank? && auth_session[:auth_attributes].nil?)
71
+ assert_equal false, @user.openid_response?
72
+ # openid_response? == (auth_controller? && !auth_session[:auth_attributes].nil? && auth_session[:auth_method] == "openid")
73
+ end
74
+
75
+ should "have the correct class (authentication_type == user)" do
76
+ assert_equal "user", @user.auth_params[:authentication_type]
77
+ assert @user.correct_request_class?
78
+ end
79
+
80
+ should "realize we are authenticating_with_oauth?" do
81
+ assert_equal true, @user.authenticating_with_oauth?
82
+ end
83
+ end
84
+
85
+ context "SAVE" do
86
+ setup do
87
+ @user.save
88
+ request_token = {:token => "a_token", :secret => "a_secret"}
89
+ # mock out like we've saved the data just before the first redirect
90
+ @user.save_oauth_session
91
+ @user.auth_session[:oauth_request_token] = request_token[:token]
92
+ @user.auth_session[:oauth_request_token_secret] = request_token[:secret]
93
+ end
94
+
95
+ should "save without a block" do
96
+ assert_equal true, @user.authenticating_with_oauth?
97
+ assert_equal true, @user.valid?
98
+ end
99
+
100
+ should "still be an oauth request" do
101
+ assert_equal true, @user.oauth_request?
102
+ end
103
+
104
+ context "RESPONSE (with TwitterToken)" do
105
+ setup do
106
+ @key_and_secret = {:key => "a_key", :secret => "a_secret", :token => "a_token"}
107
+ @user.auth_controller.params.merge!(:oauth_token => @key_and_secret[:token])
108
+ TwitterToken.stubs(:get_token_and_secret).returns(@key_and_secret)
109
+ end
110
+
111
+ should "have TwitterToken" do
112
+ assert_equal TwitterToken, @user.token_class
113
+ assert 1.0, @user.token_class.oauth_version
114
+ end
115
+
116
+ should "have oauth token" do
117
+ assert @user.auth_params
118
+ assert_equal true, @user.auth_params?
119
+ assert_equal "a_token", @user.oauth_token
120
+ end
121
+
122
+ should "not be an 'oauth_request'" do
123
+ assert_equal true, @user.auth_params?
124
+ assert_equal true, @user.oauth_provider?
125
+ assert_equal false, @user.oauth_response.blank?
126
+ #assert_equal false, @user.oauth_request?
127
+ # need a better way of checking this!
128
+ end
129
+
130
+ should "be an 'oauth_response'" do
131
+ assert_equal true, !@user.oauth_response.nil?
132
+ assert_equal true, @user.auth_session?
133
+ assert_equal true, (@user.auth_session[:auth_request_class] == @user.class.name)
134
+ assert_equal true, (@user.auth_session[:auth_method] == "oauth")
135
+ assert_equal true, @user.oauth_response?
136
+ end
137
+
138
+ should "be using oauth" do
139
+ assert_equal true, @user.using_oauth?
140
+ end
141
+
142
+ should "not be using openid" do
143
+ assert_equal false, @user.using_openid?
144
+ end
145
+
146
+ should "not be an 'openid_request'" do
147
+ assert_equal false, @user.using_openid?
148
+ end
149
+
150
+ should "not be an 'openid_response" do
151
+ assert_equal false, @user.using_openid?
152
+ end
153
+
154
+ teardown do
155
+ #TwitterToken.unstub(:get_token_and_secret)
156
+ end
157
+ end
158
+ end
159
+
160
+ end
161
+
162
+ context "tokens" do
163
+ setup do
164
+ @token = TwitterToken.new
165
+ end
166
+
167
+ should "be version 1 since it's twitter" do
168
+ assert_equal 1.0, @token.oauth_version
169
+ end
170
+
171
+ should "return a new consumer with each call" do
172
+ first_consumer = @token.consumer
173
+ second_consumer = @token.consumer
174
+ assert_not_equal first_consumer, second_consumer
175
+ end
176
+ end
177
+ end
178
+ end
@@ -0,0 +1,71 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ module AuthlogicConnect
4
+ class OpenIdTest < Test::Unit::TestCase
5
+ context "OpenId" do
6
+ setup do
7
+ @user = User.new(:login => "viatropos")
8
+ controller.params.merge!(:authentication_type => "user")
9
+ Authlogic::Session::Base.controller = controller
10
+ @user.auth_controller.params.merge!(:openid_identifier => "viatropos.myopenid.com")
11
+ @session_vars = [
12
+ :authentication_type,
13
+ :auth_request_class,
14
+ :openid_identifier,
15
+ :auth_callback_method
16
+ ]
17
+ end
18
+
19
+ should "have an 'openid_identifier'" do
20
+ assert_equal true, @user.openid_identifier?
21
+ end
22
+
23
+ should "be an 'openid_request'" do
24
+ assert @user.openid_request?
25
+ end
26
+
27
+ should "not be an 'openid_response'" do
28
+ assert_equal false, @user.openid_response?
29
+ end
30
+
31
+ should "be using openid" do
32
+ assert @user.using_openid?
33
+ end
34
+
35
+ should "not be using oauth" do
36
+ assert_equal false, @user.using_oauth?
37
+ end
38
+
39
+ should "have the correct class (authentication_type == user)" do
40
+ assert @user.correct_request_class?
41
+ end
42
+
43
+ should "realize we are authenticating_with_openid?" do
44
+ assert @user.authenticating_with_openid?
45
+ end
46
+
47
+ context "and 'save_with_openid', manually checking each step" do
48
+
49
+ setup do
50
+ # mock save
51
+ # this, and the whole redirect process happens
52
+ # but we'll just assume we saved the session data and got the redirect back
53
+ @user.save_openid_session
54
+ @user.save(:skip_redirect => true, :keep_session => true) do
55
+ "I'm the block you want"
56
+ end
57
+ # copy to test controller
58
+ @user.auth_session.each do |key, value|
59
+ @user.auth_controller.session[key] = value
60
+ end
61
+ end
62
+
63
+ teardown do
64
+ @user.destroy
65
+ end
66
+
67
+ end
68
+
69
+ end
70
+ end
71
+ end
data/test/test_user.rb ADDED
@@ -0,0 +1,85 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ module AuthlogicConnect
4
+ class UserTest < Test::Unit::TestCase
5
+ context "User creation" do
6
+ setup do
7
+ @user = User.new(:login => "viatropos")
8
+ end
9
+
10
+ should "make sure we are loading the models" do
11
+ assert_equal "viatropos", @user.login
12
+ end
13
+
14
+ context "responds to added oauth methods (our oauth api on the user)" do
15
+
16
+ should "have 'access_tokens' method" do
17
+ assert @user.respond_to?(:access_tokens)
18
+ assert_equal [], @user.access_tokens
19
+ end
20
+
21
+ should "have 'active_token' method" do
22
+ assert @user.respond_to?(:active_token)
23
+ assert_equal nil, @user.active_token
24
+ end
25
+
26
+ end
27
+
28
+ context "with controller and session..." do
29
+
30
+ setup do
31
+ controller.params.merge!(:authentication_type => "user")
32
+ Authlogic::Session::Base.controller = controller
33
+ end
34
+
35
+ should "have a valid controller" do
36
+ assert @user.auth_controller
37
+ end
38
+
39
+ should "have auth_params" do
40
+ assert @user.auth_params?
41
+ end
42
+
43
+ should "have an empty 'auth_session'" do
44
+ assert @user.auth_session.empty?
45
+ assert_equal false, @user.auth_session?
46
+ end
47
+
48
+ end
49
+
50
+ context "save the user without any parameters" do
51
+
52
+ setup do
53
+ @save_success = @user.save
54
+ end
55
+
56
+ should "be a valid save" do
57
+ assert @save_success
58
+ end
59
+
60
+ should "not be using oauth" do
61
+ assert_equal false, @user.using_oauth?
62
+ # using_oauth? == (oauth_request? || oauth_response? || stored_oauth_token_and_secret?)
63
+ assert_equal false, @user.oauth_request?
64
+ # oauth_request? == (auth_params? && oauth_provider?)
65
+ assert_equal false, @user.auth_params?
66
+ assert_equal false, @user.oauth_provider?
67
+ assert_equal false, @user.oauth_response?
68
+ # oauth_response? == (!oauth_response.nil? && auth_session? && auth_session[:auth_request_class] == self.class.name && auth_session[:auth_method] == "oauth")
69
+ assert_equal false, !@user.oauth_response.nil?
70
+ assert_equal false, @user.auth_session?
71
+ assert_equal false, @user.stored_oauth_token_and_secret?
72
+ end
73
+
74
+ should "not be using openid" do
75
+ assert_equal false, @user.using_openid?
76
+ end
77
+
78
+ end
79
+
80
+ context "user with required password field" do
81
+
82
+ end
83
+ end
84
+ end
85
+ end
metadata ADDED
@@ -0,0 +1,244 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: foreverman-authlogic-connect
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Sean Liu
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-09-23 00:00:00 +08:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: activesupport
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - "="
28
+ - !ruby/object:Gem::Version
29
+ hash: 19
30
+ segments:
31
+ - 2
32
+ - 3
33
+ - 8
34
+ version: 2.3.8
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: activerecord
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - "="
44
+ - !ruby/object:Gem::Version
45
+ hash: 19
46
+ segments:
47
+ - 2
48
+ - 3
49
+ - 8
50
+ version: 2.3.8
51
+ type: :runtime
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: json
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ hash: 3
62
+ segments:
63
+ - 0
64
+ version: "0"
65
+ type: :runtime
66
+ version_requirements: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ name: ruby-openid
69
+ prerelease: false
70
+ requirement: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 3
76
+ segments:
77
+ - 0
78
+ version: "0"
79
+ type: :runtime
80
+ version_requirements: *id004
81
+ - !ruby/object:Gem::Dependency
82
+ name: rack-openid
83
+ prerelease: false
84
+ requirement: &id005 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 21
90
+ segments:
91
+ - 0
92
+ - 2
93
+ - 1
94
+ version: 0.2.1
95
+ type: :runtime
96
+ version_requirements: *id005
97
+ - !ruby/object:Gem::Dependency
98
+ name: oauth
99
+ prerelease: false
100
+ requirement: &id006 !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ hash: 3
106
+ segments:
107
+ - 0
108
+ version: "0"
109
+ type: :runtime
110
+ version_requirements: *id006
111
+ - !ruby/object:Gem::Dependency
112
+ name: oauth2
113
+ prerelease: false
114
+ requirement: &id007 !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ hash: 3
120
+ segments:
121
+ - 0
122
+ version: "0"
123
+ type: :runtime
124
+ version_requirements: *id007
125
+ - !ruby/object:Gem::Dependency
126
+ name: authlogic
127
+ prerelease: false
128
+ requirement: &id008 !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ hash: 3
134
+ segments:
135
+ - 0
136
+ version: "0"
137
+ type: :runtime
138
+ version_requirements: *id008
139
+ description: Oauth and OpenID made dead simple
140
+ email: seanliugm@gmail.com
141
+ executables: []
142
+
143
+ extensions: []
144
+
145
+ extra_rdoc_files: []
146
+
147
+ files:
148
+ - README.markdown
149
+ - Rakefile
150
+ - init.rb
151
+ - MIT-LICENSE
152
+ - lib/authlogic-connect.rb
153
+ - lib/authlogic_connect/access_token.rb
154
+ - lib/authlogic_connect/authlogic_connect.rb
155
+ - lib/authlogic_connect/callback_filter.rb
156
+ - lib/authlogic_connect/common/session.rb
157
+ - lib/authlogic_connect/common/state.rb
158
+ - lib/authlogic_connect/common/user.rb
159
+ - lib/authlogic_connect/common/variables.rb
160
+ - lib/authlogic_connect/common.rb
161
+ - lib/authlogic_connect/engine.rb
162
+ - lib/authlogic_connect/ext.rb
163
+ - lib/authlogic_connect/oauth/helper.rb
164
+ - lib/authlogic_connect/oauth/process.rb
165
+ - lib/authlogic_connect/oauth/session.rb
166
+ - lib/authlogic_connect/oauth/state.rb
167
+ - lib/authlogic_connect/oauth/tokens/aol_token.rb
168
+ - lib/authlogic_connect/oauth/tokens/facebook_token.rb
169
+ - lib/authlogic_connect/oauth/tokens/foursquare_token.rb
170
+ - lib/authlogic_connect/oauth/tokens/get_satisfaction_token.rb
171
+ - lib/authlogic_connect/oauth/tokens/github_token.rb
172
+ - lib/authlogic_connect/oauth/tokens/google_token.rb
173
+ - lib/authlogic_connect/oauth/tokens/linked_in_token.rb
174
+ - lib/authlogic_connect/oauth/tokens/meetup_token.rb
175
+ - lib/authlogic_connect/oauth/tokens/myspace_token.rb
176
+ - lib/authlogic_connect/oauth/tokens/netflix_token.rb
177
+ - lib/authlogic_connect/oauth/tokens/oauth_token.rb
178
+ - lib/authlogic_connect/oauth/tokens/ohloh_token.rb
179
+ - lib/authlogic_connect/oauth/tokens/opensocial_token.rb
180
+ - lib/authlogic_connect/oauth/tokens/twitter_token.rb
181
+ - lib/authlogic_connect/oauth/tokens/vimeo_token.rb
182
+ - lib/authlogic_connect/oauth/tokens/yahoo_token.rb
183
+ - lib/authlogic_connect/oauth/user.rb
184
+ - lib/authlogic_connect/oauth/variables.rb
185
+ - lib/authlogic_connect/oauth.rb
186
+ - lib/authlogic_connect/openid/process.rb
187
+ - lib/authlogic_connect/openid/session.rb
188
+ - lib/authlogic_connect/openid/state.rb
189
+ - lib/authlogic_connect/openid/tokens/aol_token.rb
190
+ - lib/authlogic_connect/openid/tokens/blogger_token.rb
191
+ - lib/authlogic_connect/openid/tokens/flickr_token.rb
192
+ - lib/authlogic_connect/openid/tokens/my_openid_token.rb
193
+ - lib/authlogic_connect/openid/tokens/openid_token.rb
194
+ - lib/authlogic_connect/openid/user.rb
195
+ - lib/authlogic_connect/openid/variables.rb
196
+ - lib/authlogic_connect/openid.rb
197
+ - lib/authlogic_connect/rack_state.rb
198
+ - lib/open_id_authentication.rb
199
+ - rails/init.rb
200
+ - test/controllers/test_users_controller.rb
201
+ - test/database.yml
202
+ - test/libs/database.rb
203
+ - test/libs/user.rb
204
+ - test/libs/user_session.rb
205
+ - test/test_helper.rb
206
+ - test/test_oauth.rb
207
+ - test/test_openid.rb
208
+ - test/test_user.rb
209
+ has_rdoc: true
210
+ homepage: http://github.com/viatropos/authlogic-connect
211
+ licenses: []
212
+
213
+ post_install_message:
214
+ rdoc_options: []
215
+
216
+ require_paths:
217
+ - lib
218
+ required_ruby_version: !ruby/object:Gem::Requirement
219
+ none: false
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ hash: 3
224
+ segments:
225
+ - 0
226
+ version: "0"
227
+ required_rubygems_version: !ruby/object:Gem::Requirement
228
+ none: false
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ hash: 3
233
+ segments:
234
+ - 0
235
+ version: "0"
236
+ requirements: []
237
+
238
+ rubyforge_project: authlogic-connect
239
+ rubygems_version: 1.3.7
240
+ signing_key:
241
+ specification_version: 3
242
+ summary: "Authlogic Connect: Oauth and OpenID made dead simple"
243
+ test_files: []
244
+