anideo-authlogic-connect 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) 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/libs/database.rb +47 -0
  55. data/test/libs/user.rb +7 -0
  56. data/test/libs/user_session.rb +2 -0
  57. data/test/test_helper.rb +178 -0
  58. data/test/test_oauth.rb +178 -0
  59. data/test/test_openid.rb +71 -0
  60. data/test/test_user.rb +85 -0
  61. metadata +232 -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
@@ -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,232 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: anideo-authlogic-connect
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 6
9
+ version: 0.0.6
10
+ platform: ruby
11
+ authors:
12
+ - Lance Pollard
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-11-24 00:00:00 +08:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: activesupport
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 2
30
+ - 1
31
+ - 2
32
+ version: 2.1.2
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: activerecord
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ segments:
44
+ - 2
45
+ - 1
46
+ - 2
47
+ version: 2.1.2
48
+ type: :runtime
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: json
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ type: :runtime
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ name: ruby-openid
65
+ prerelease: false
66
+ requirement: &id004 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ segments:
72
+ - 0
73
+ version: "0"
74
+ type: :runtime
75
+ version_requirements: *id004
76
+ - !ruby/object:Gem::Dependency
77
+ name: rack-openid
78
+ prerelease: false
79
+ requirement: &id005 !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ segments:
85
+ - 0
86
+ - 2
87
+ - 1
88
+ version: 0.2.1
89
+ type: :runtime
90
+ version_requirements: *id005
91
+ - !ruby/object:Gem::Dependency
92
+ name: oauth
93
+ prerelease: false
94
+ requirement: &id006 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ segments:
100
+ - 0
101
+ version: "0"
102
+ type: :runtime
103
+ version_requirements: *id006
104
+ - !ruby/object:Gem::Dependency
105
+ name: oauth2
106
+ prerelease: false
107
+ requirement: &id007 !ruby/object:Gem::Requirement
108
+ none: false
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ segments:
113
+ - 0
114
+ version: "0"
115
+ type: :runtime
116
+ version_requirements: *id007
117
+ - !ruby/object:Gem::Dependency
118
+ name: authlogic
119
+ prerelease: false
120
+ requirement: &id008 !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ segments:
126
+ - 0
127
+ version: "0"
128
+ type: :runtime
129
+ version_requirements: *id008
130
+ description: Oauth and OpenID made dead simple, added custom token settings for Facebook
131
+ email: lancejpollard@gmail.com
132
+ executables: []
133
+
134
+ extensions: []
135
+
136
+ extra_rdoc_files: []
137
+
138
+ files:
139
+ - README.markdown
140
+ - Rakefile
141
+ - init.rb
142
+ - MIT-LICENSE
143
+ - lib/authlogic-connect.rb
144
+ - lib/authlogic_connect/access_token.rb
145
+ - lib/authlogic_connect/authlogic_connect.rb
146
+ - lib/authlogic_connect/callback_filter.rb
147
+ - lib/authlogic_connect/common/session.rb
148
+ - lib/authlogic_connect/common/state.rb
149
+ - lib/authlogic_connect/common/user.rb
150
+ - lib/authlogic_connect/common/variables.rb
151
+ - lib/authlogic_connect/common.rb
152
+ - lib/authlogic_connect/engine.rb
153
+ - lib/authlogic_connect/ext.rb
154
+ - lib/authlogic_connect/oauth/helper.rb
155
+ - lib/authlogic_connect/oauth/process.rb
156
+ - lib/authlogic_connect/oauth/session.rb
157
+ - lib/authlogic_connect/oauth/state.rb
158
+ - lib/authlogic_connect/oauth/tokens/aol_token.rb
159
+ - lib/authlogic_connect/oauth/tokens/facebook_token.rb
160
+ - lib/authlogic_connect/oauth/tokens/foursquare_token.rb
161
+ - lib/authlogic_connect/oauth/tokens/get_satisfaction_token.rb
162
+ - lib/authlogic_connect/oauth/tokens/github_token.rb
163
+ - lib/authlogic_connect/oauth/tokens/google_token.rb
164
+ - lib/authlogic_connect/oauth/tokens/linked_in_token.rb
165
+ - lib/authlogic_connect/oauth/tokens/meetup_token.rb
166
+ - lib/authlogic_connect/oauth/tokens/myspace_token.rb
167
+ - lib/authlogic_connect/oauth/tokens/netflix_token.rb
168
+ - lib/authlogic_connect/oauth/tokens/oauth_token.rb
169
+ - lib/authlogic_connect/oauth/tokens/ohloh_token.rb
170
+ - lib/authlogic_connect/oauth/tokens/opensocial_token.rb
171
+ - lib/authlogic_connect/oauth/tokens/twitter_token.rb
172
+ - lib/authlogic_connect/oauth/tokens/vimeo_token.rb
173
+ - lib/authlogic_connect/oauth/tokens/yahoo_token.rb
174
+ - lib/authlogic_connect/oauth/user.rb
175
+ - lib/authlogic_connect/oauth/variables.rb
176
+ - lib/authlogic_connect/oauth.rb
177
+ - lib/authlogic_connect/openid/process.rb
178
+ - lib/authlogic_connect/openid/session.rb
179
+ - lib/authlogic_connect/openid/state.rb
180
+ - lib/authlogic_connect/openid/tokens/aol_token.rb
181
+ - lib/authlogic_connect/openid/tokens/blogger_token.rb
182
+ - lib/authlogic_connect/openid/tokens/flickr_token.rb
183
+ - lib/authlogic_connect/openid/tokens/my_openid_token.rb
184
+ - lib/authlogic_connect/openid/tokens/openid_token.rb
185
+ - lib/authlogic_connect/openid/user.rb
186
+ - lib/authlogic_connect/openid/variables.rb
187
+ - lib/authlogic_connect/openid.rb
188
+ - lib/authlogic_connect/rack_state.rb
189
+ - lib/open_id_authentication.rb
190
+ - rails/init.rb
191
+ - test/controllers/test_users_controller.rb
192
+ - test/libs/database.rb
193
+ - test/libs/user.rb
194
+ - test/libs/user_session.rb
195
+ - test/test_helper.rb
196
+ - test/test_oauth.rb
197
+ - test/test_openid.rb
198
+ - test/test_user.rb
199
+ has_rdoc: true
200
+ homepage: http://github.com/viatropos/authlogic-connect
201
+ licenses: []
202
+
203
+ post_install_message:
204
+ rdoc_options: []
205
+
206
+ require_paths:
207
+ - lib
208
+ required_ruby_version: !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ segments:
214
+ - 0
215
+ version: "0"
216
+ required_rubygems_version: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ segments:
222
+ - 0
223
+ version: "0"
224
+ requirements: []
225
+
226
+ rubyforge_project: authlogic-connect
227
+ rubygems_version: 1.3.7
228
+ signing_key:
229
+ specification_version: 3
230
+ summary: "Authlogic Connect: Oauth and OpenID made dead simple"
231
+ test_files: []
232
+