authlogic-oauth 1.0.0

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 (60) hide show
  1. data/.git/COMMIT_EDITMSG +71 -0
  2. data/.git/FETCH_HEAD +1 -0
  3. data/.git/HEAD +1 -0
  4. data/.git/config +12 -0
  5. data/.git/description +1 -0
  6. data/.git/hooks/applypatch-msg.sample +15 -0
  7. data/.git/hooks/commit-msg.sample +24 -0
  8. data/.git/hooks/post-commit.sample +8 -0
  9. data/.git/hooks/post-receive.sample +15 -0
  10. data/.git/hooks/post-update.sample +8 -0
  11. data/.git/hooks/pre-applypatch.sample +14 -0
  12. data/.git/hooks/pre-commit.sample +18 -0
  13. data/.git/hooks/pre-rebase.sample +169 -0
  14. data/.git/hooks/prepare-commit-msg.sample +36 -0
  15. data/.git/hooks/update.sample +107 -0
  16. data/.git/index +0 -0
  17. data/.git/info/exclude +6 -0
  18. data/.git/logs/HEAD +8 -0
  19. data/.git/logs/refs/heads/master +6 -0
  20. data/.git/logs/refs/remotes/origin/HEAD +1 -0
  21. data/.git/logs/refs/remotes/origin/master +5 -0
  22. data/.git/objects/1a/7e60fbbc011b519f1f19dbca839cfd907924a3 +0 -0
  23. data/.git/objects/2e/f242d63b205e88b003d10e96d7d31269bd7073 +0 -0
  24. data/.git/objects/41/6b196f0d3fa02be32bdd0bd7d6a3fd7d57844d +0 -0
  25. data/.git/objects/42/607cc77682553f3d71ef40e5fae408ac3351f4 +0 -0
  26. data/.git/objects/56/6625e05678ab5d52511225fa360e6934e049f6 +0 -0
  27. data/.git/objects/56/947322f2e948b597b9e692320ecada30315e45 +0 -0
  28. data/.git/objects/87/a7f6af123ffd70a8cd751b80ec4d4a9de69ab9 +0 -0
  29. data/.git/objects/ab/14db4dd48cb6f4c3688eb65513afac383d3584 +0 -0
  30. data/.git/objects/b2/9bfce970d5a817d2f7626b2984dc8de67ab774 +0 -0
  31. data/.git/objects/e0/a81debca6c11c68732b3769d1f83c5c3c97c09 +0 -0
  32. data/.git/objects/e3/74f7848330d167432299a84e43c7af18a51b87 +2 -0
  33. data/.git/objects/f3/5e9e44d75a11221b0c2f2b2a0bdb5b37bfbaa1 +0 -0
  34. data/.git/objects/pack/pack-2b55f15bfde87d738b79905b5c0788e4a4cbf3af.idx +0 -0
  35. data/.git/objects/pack/pack-2b55f15bfde87d738b79905b5c0788e4a4cbf3af.pack +0 -0
  36. data/.git/packed-refs +2 -0
  37. data/.git/refs/heads/master +1 -0
  38. data/.git/refs/remotes/origin/HEAD +1 -0
  39. data/.git/refs/remotes/origin/master +1 -0
  40. data/CHANGELOG.rdoc +4 -0
  41. data/MIT-LICENSE +20 -0
  42. data/Manifest.txt +57 -0
  43. data/README.rdoc +120 -0
  44. data/Rakefile +20 -0
  45. data/init.rb +1 -0
  46. data/lib/authlogic_oauth/acts_as_authentic.rb +116 -0
  47. data/lib/authlogic_oauth/oauth_process.rb +61 -0
  48. data/lib/authlogic_oauth/session.rb +73 -0
  49. data/lib/authlogic_oauth/version.rb +51 -0
  50. data/lib/authlogic_oauth.rb +7 -0
  51. data/rails/init.rb +1 -0
  52. data/test/acts_as_authentic_test.rb +100 -0
  53. data/test/fixtures/users.yml +6 -0
  54. data/test/lib/user.rb +3 -0
  55. data/test/lib/user_session.rb +7 -0
  56. data/test/session_test.rb +27 -0
  57. data/test/test_helper.rb +49 -0
  58. data.tar.gz.sig +0 -0
  59. metadata +155 -0
  60. metadata.gz.sig +0 -0
@@ -0,0 +1,73 @@
1
+ module AuthlogicOauth
2
+ # This module is responsible for adding oauth
3
+ # to the Authlogic::Session::Base class.
4
+ module Session
5
+ def self.included(klass)
6
+ klass.class_eval do
7
+ extend Config
8
+ include Methods
9
+ end
10
+ end
11
+
12
+ module Config
13
+ # * <tt>Default:</tt> :find_by_oauth_token
14
+ # * <tt>Accepts:</tt> Symbol
15
+ def find_by_oauth_method(value = nil)
16
+ rw_config(:find_by_oauth_method, value, :find_by_oauth_token)
17
+ end
18
+ alias_method :find_by_oauth_method=, :find_by_oauth_method
19
+ end
20
+
21
+ module Methods
22
+ include OauthProcess
23
+
24
+ def self.included(klass)
25
+ klass.class_eval do
26
+ validate :validate_by_oauth, :if => :authenticating_with_oauth?
27
+ end
28
+ end
29
+
30
+ # Hooks into credentials so that you can pass a user who has already has an oauth access token.
31
+ def credentials=(value)
32
+ super
33
+ values = value.is_a?(Array) ? value : [value]
34
+ hash = values.first.is_a?(Hash) ? values.first.with_indifferent_access : nil
35
+ self.record = hash[:priority_record] if !hash.nil? && hash.key?(:priority_record)
36
+ end
37
+
38
+ def record=(record)
39
+ @record = record
40
+ end
41
+
42
+ # Clears out the block if we are authenticating with oauth,
43
+ # so that we can redirect without a DoubleRender error.
44
+ def save(&block)
45
+ block = nil if redirecting_to_oauth_server?
46
+ super(&block)
47
+ end
48
+
49
+ private
50
+
51
+ def authenticating_with_oauth?
52
+ !controller.params[:login_with_oauth].blank? || oauth_response
53
+ end
54
+
55
+ def authenticate_with_oauth
56
+ if @record
57
+ self.attempted_record = record
58
+ else
59
+ self.attempted_record = search_for_record(find_by_oauth_method, generate_access_token.token)
60
+ #errors.add_to_base("Unable to authenticate with Twitter.")
61
+ end
62
+
63
+ if !attempted_record
64
+ errors.add_to_base("Could not find user in our database, have you registered with your oauth account?")
65
+ end
66
+ end
67
+
68
+ def find_by_oauth_method
69
+ self.class.find_by_oauth_method
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,51 @@
1
+ module AuthlogicOauth
2
+ # A class for describing the current version of a library. The version
3
+ # consists of three parts: the +major+ number, the +minor+ number, and the
4
+ # +tiny+ (or +patch+) number.
5
+ class Version
6
+ include Comparable
7
+
8
+ # A convenience method for instantiating a new Version instance with the
9
+ # given +major+, +minor+, and +tiny+ components.
10
+ def self.[](major, minor, tiny)
11
+ new(major, minor, tiny)
12
+ end
13
+
14
+ attr_reader :major, :minor, :tiny
15
+
16
+ # Create a new Version object with the given components.
17
+ def initialize(major, minor, tiny)
18
+ @major, @minor, @tiny = major, minor, tiny
19
+ end
20
+
21
+ # Compare this version to the given +version+ object.
22
+ def <=>(version)
23
+ to_i <=> version.to_i
24
+ end
25
+
26
+ # Converts this version object to a string, where each of the three
27
+ # version components are joined by the '.' character. E.g., 2.0.0.
28
+ def to_s
29
+ @to_s ||= [@major, @minor, @tiny].join(".")
30
+ end
31
+
32
+ # Converts this version to a canonical integer that may be compared
33
+ # against other version objects.
34
+ def to_i
35
+ @to_i ||= @major * 1_000_000 + @minor * 1_000 + @tiny
36
+ end
37
+
38
+ def to_a
39
+ [@major, @minor, @tiny]
40
+ end
41
+
42
+ MAJOR = 1
43
+ MINOR = 0
44
+ TINY = 0
45
+
46
+ # The current version as a Version instance
47
+ CURRENT = new(MAJOR, MINOR, TINY)
48
+ # The current version as a String
49
+ STRING = CURRENT.to_s
50
+ end
51
+ end
@@ -0,0 +1,7 @@
1
+ require File.dirname(__FILE__) + "/authlogic_oauth/version"
2
+ require File.dirname(__FILE__) + "/authlogic_oauth/oauth_process"
3
+ require File.dirname(__FILE__) + "/authlogic_oauth/acts_as_authentic"
4
+ require File.dirname(__FILE__) + "/authlogic_oauth/session"
5
+
6
+ ActiveRecord::Base.send(:include, AuthlogicOauth::ActsAsAuthentic)
7
+ Authlogic::Session::Base.send(:include, AuthlogicOauth::Session)
data/rails/init.rb ADDED
@@ -0,0 +1 @@
1
+ require "authlogic_oauth"
@@ -0,0 +1,100 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class ActsAsAuthenticTest < ActiveSupport::TestCase
4
+ def test_included
5
+ assert User.send(:acts_as_authentic_modules).include?(AuthlogicOauth::ActsAsAuthentic::Methods)
6
+ assert_equal :validate_password_with_oauth?, User.validates_length_of_password_field_options[:if]
7
+ assert_equal :validate_password_with_oauth?, User.validates_confirmation_of_password_field_options[:if]
8
+ assert_equal :validate_password_with_oauth?, User.validates_length_of_password_confirmation_field_options[:if]
9
+ assert_equal :validate_password_with_oauth?, User.validates_length_of_login_field_options[:if]
10
+ assert_equal :validate_password_with_oauth?, User.validates_format_of_login_field_options[:if]
11
+ end
12
+
13
+ def test_required_fields_on_create
14
+ user = User.new
15
+ assert !user.save
16
+ assert user.errors.on(:login)
17
+ assert user.errors.on(:password)
18
+ assert user.errors.on(:password_confirmation)
19
+ end
20
+
21
+ def test_fields_not_required_on_create_if_using_oauth
22
+ user = User.new
23
+ user.oauth_token = "SLDKJSD"
24
+ assert !user.save {} # because we are redirecting, the user was NOT saved
25
+ #assert redirecting_to_oauth?
26
+ end
27
+
28
+ def test_login_not_required_on_update_if_using_oauth
29
+ john = users(:john)
30
+ assert_nil john.login
31
+ assert john.save
32
+ end
33
+
34
+ def test_password_not_required_on_update_if_using_oauth
35
+ john = users(:john)
36
+ assert_nil john.crypted_password
37
+ assert john.save
38
+ end
39
+
40
+ def test_email_not_required_on_update_if_using_oauth
41
+ john = users(:john)
42
+ assert_nil john.email
43
+ assert john.save
44
+ end
45
+
46
+ def test_fields_required_on_update_if_not_using_oauth
47
+ john = users(:john)
48
+ john.oauth_token = nil
49
+ assert_nil john.login
50
+ assert_nil john.crypted_password
51
+ assert_nil john.email
52
+ assert !john.save
53
+
54
+ assert john.errors.on(:login)
55
+ assert john.errors.on(:password)
56
+ assert john.errors.on(:password_confirmation)
57
+ end
58
+
59
+ def test_validates_uniqueness_of_oauth_token
60
+ u = User.new(:oauth_token => "johns_token")
61
+ assert !u.valid?
62
+ assert u.errors.on(:oauth_token)
63
+ end
64
+
65
+ def test_blank_oauth_token_gets_set_to_nil
66
+ u = User.new(:oauth_token => "")
67
+ assert_nil u.oauth_token
68
+ end
69
+
70
+ def test_blank_oauth_secret_gets_set_to_nil
71
+ u = User.new(:oauth_secret => "")
72
+ assert_nil u.oauth_secret
73
+ end
74
+
75
+ def test_updating_without_oauth
76
+ john = users(:john)
77
+ john.oauth_token = nil
78
+ john.login = "john"
79
+ john.email = "john@example.com"
80
+ john.password = "test"
81
+ john.password_confirmation = "test"
82
+ assert john.save
83
+ #assert !redirecting_to_yahoo?
84
+ end
85
+
86
+ def test_updating_without_validation
87
+ john = users(:john)
88
+ john.oauth_token = "SDSDGSDGSD"
89
+ assert john.save(false)
90
+ #assert !redirecting_to_yahoo?
91
+ end
92
+
93
+ def test_updating_without_a_block
94
+ john = users(:john)
95
+ john.oauth_token = "SDSDGSDGSD"
96
+ assert john.save
97
+ john.reload
98
+ assert_equal "SDSDGSDGSD", john.oauth_token
99
+ end
100
+ end
@@ -0,0 +1,6 @@
1
+ john:
2
+ persistence_token: 6cde0674657a8a313ce952df979de2830309aa4c11ca65805dd00bfdc65dbcc2f5e36718660a1d2e68c1a08c276d996763985d2f06fd3d076eb7bc4d97b1e317
3
+ single_access_token: <%= Authlogic::Random.friendly_token %>
4
+ perishable_token: <%= Authlogic::Random.friendly_token %>
5
+ oauth_token: johns_token
6
+ oauth_secret: johns_token_secret
data/test/lib/user.rb ADDED
@@ -0,0 +1,3 @@
1
+ class User < ActiveRecord::Base
2
+ acts_as_authentic
3
+ end
@@ -0,0 +1,7 @@
1
+ class UserSession < Authlogic::Session::Base
2
+
3
+ def self.oauth_consumer
4
+ OAuth::Consumer.new("CONSUMER_TOKEN", "CONSUMER_SECRET", { :site=>"http://example.com" })
5
+ end
6
+
7
+ end
@@ -0,0 +1,27 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class SessionTest < ActiveSupport::TestCase
4
+ def test_authenticate_by_record
5
+ session = UserSession.new
6
+ assert session.respond_to?(:record)
7
+ session.record = users(:john)
8
+ assert_equal users(:john), session.record
9
+ end
10
+
11
+ def test_validate_by_nil_oauth_token
12
+ session = UserSession.new
13
+ assert !session.save
14
+ #assert !redirecting_to_yahoo?
15
+ end
16
+
17
+ def test_auth_session
18
+ session = UserSession.new
19
+ #assert session.is_auth_session?
20
+ end
21
+
22
+ def test_validate_by_oauth
23
+ session = UserSession.new
24
+ assert !session.save
25
+ #assert redirecting_to_yahoo?
26
+ end
27
+ end
@@ -0,0 +1,49 @@
1
+ require "test/unit"
2
+ require "rubygems"
3
+ require "oauth"
4
+ require "ruby-debug"
5
+ require "active_record"
6
+ require "active_record/fixtures"
7
+
8
+ ActiveRecord::Schema.verbose = false
9
+ ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :dbfile => ":memory:")
10
+ ActiveRecord::Base.configurations = true
11
+ ActiveRecord::Schema.define(:version => 1) do
12
+ create_table :users do |t|
13
+ t.datetime :created_at
14
+ t.datetime :updated_at
15
+ t.integer :lock_version, :default => 0
16
+ t.string :login
17
+ t.string :crypted_password
18
+ t.string :password_salt
19
+ t.string :persistence_token
20
+ t.string :single_access_token
21
+ t.string :perishable_token
22
+ t.string :oauth_token
23
+ t.string :oauth_secret
24
+ t.string :email
25
+ t.integer :login_count, :default => 0, :null => false
26
+ t.integer :failed_login_count, :default => 0, :null => false
27
+ t.datetime :last_request_at
28
+ t.datetime :current_login_at
29
+ t.datetime :last_login_at
30
+ t.string :current_login_ip
31
+ t.string :last_login_ip
32
+ end
33
+ end
34
+
35
+ require File.dirname(__FILE__) + '/../../authlogic/lib/authlogic' unless defined?(Authlogic)
36
+ require File.dirname(__FILE__) + '/../../authlogic/lib/authlogic/test_case'
37
+ require File.dirname(__FILE__) + '/../lib/authlogic_oauth' unless defined?(AuthlogicOauth)
38
+ require File.dirname(__FILE__) + '/lib/user'
39
+ require File.dirname(__FILE__) + '/lib/user_session'
40
+
41
+ class ActiveSupport::TestCase
42
+ include ActiveRecord::TestFixtures
43
+ self.fixture_path = File.dirname(__FILE__) + "/fixtures"
44
+ self.use_transactional_fixtures = false
45
+ self.use_instantiated_fixtures = false
46
+ self.pre_loaded_fixtures = false
47
+ fixtures :all
48
+ setup :activate_authlogic
49
+ end
data.tar.gz.sig ADDED
Binary file
metadata ADDED
@@ -0,0 +1,155 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: authlogic-oauth
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - John Allison
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDNDCCAhygAwIBAgIBADANBgkqhkiG9w0BAQUFADBAMRIwEAYDVQQDDAlqcmFs
14
+ bGlzb24xFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
15
+ bTAeFw0wOTA1MzEyMDI4NTFaFw0xMDA1MzEyMDI4NTFaMEAxEjAQBgNVBAMMCWpy
16
+ YWxsaXNvbjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYD
17
+ Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxmiht0h8Xr/jyzWJ
18
+ Hpu1N8/dHd03mLn2qedqbh7bUK6HRfUAfD2ZW23OBBzfo3/T1D+Ajof5zVRhKKz3
19
+ eVkxbm4u0D8nGmBUmhk8NRSCVpeTpOqjMcqIYHhy0Z6IcdPvyP5E2STJld3p4y3S
20
+ SrjhILliRu7VUc5MPVgzC357z122exJr2awM7aEjIadqft3nGNSf0Ic/GyUu42lp
21
+ pryVcuuRVh4knxywBfCa/R//eRnCxDwvdcqE8eavocSaJbMX+5fH4LznaKSQH+aO
22
+ TNWliGWzXaO6nruw4Zg5Qwq5Kv3XQqYDq+Cy0UtfBQOSmUtMrYiOZPDJxrDxip+q
23
+ uyl0dwIDAQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU
24
+ NX1Z1p3gfKxvX4rWPTSsw2clmD0wDQYJKoZIhvcNAQEFBQADggEBAKBtJp407gUq
25
+ bEjeqWepDletgRkcGJ6ufMTvJo/oBbJ87RIGfDD4wrbdB9KuNmIBNsMbEkjjUgJR
26
+ +OqNrOWf26QdFNFdCpOJGjwV7pGuBH8CwMtg7hzo2YUtmP41UOUEJE/JZxzsroFv
27
+ sg4+NMaxf46G4gc8N8KcTp2oqfxZX2Q69FikK8C5252MeUp1L5SA2bg9O6gJ+NVL
28
+ 6LirrgJgsVRUd8opCNkIenqRd2rtQoK/NH18UWBMmRdP5aqsZNbuOjfUV435GV3d
29
+ KNs3c8VjZ48L7T+UwnAF/dxD8QcOwbNI5T2CumV/isbYEE0lA3NY4vSZc3Hw/DGk
30
+ vXZtBUyqY8Y=
31
+ -----END CERTIFICATE-----
32
+
33
+ date: 2009-05-31 00:00:00 -04:00
34
+ default_executable:
35
+ dependencies:
36
+ - !ruby/object:Gem::Dependency
37
+ name: activesupport
38
+ type: :runtime
39
+ version_requirement:
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: "0"
45
+ version:
46
+ - !ruby/object:Gem::Dependency
47
+ name: hoe
48
+ type: :development
49
+ version_requirement:
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 1.12.2
55
+ version:
56
+ description: An authlogic extension for authenticating via OAuth. This can be helpful for adding support for login/registration with Twitter credentials.
57
+ email: jrallison@gmail.com
58
+ executables: []
59
+
60
+ extensions: []
61
+
62
+ extra_rdoc_files:
63
+ - Manifest.txt
64
+ - CHANGELOG.rdoc
65
+ - README.rdoc
66
+ files:
67
+ - .git/COMMIT_EDITMSG
68
+ - .git/FETCH_HEAD
69
+ - .git/HEAD
70
+ - .git/config
71
+ - .git/description
72
+ - .git/hooks/applypatch-msg.sample
73
+ - .git/hooks/commit-msg.sample
74
+ - .git/hooks/post-commit.sample
75
+ - .git/hooks/post-receive.sample
76
+ - .git/hooks/post-update.sample
77
+ - .git/hooks/pre-applypatch.sample
78
+ - .git/hooks/pre-commit.sample
79
+ - .git/hooks/pre-rebase.sample
80
+ - .git/hooks/prepare-commit-msg.sample
81
+ - .git/hooks/update.sample
82
+ - .git/index
83
+ - .git/info/exclude
84
+ - .git/logs/HEAD
85
+ - .git/logs/refs/heads/master
86
+ - .git/logs/refs/remotes/origin/HEAD
87
+ - .git/logs/refs/remotes/origin/master
88
+ - .git/objects/1a/7e60fbbc011b519f1f19dbca839cfd907924a3
89
+ - .git/objects/2e/f242d63b205e88b003d10e96d7d31269bd7073
90
+ - .git/objects/41/6b196f0d3fa02be32bdd0bd7d6a3fd7d57844d
91
+ - .git/objects/42/607cc77682553f3d71ef40e5fae408ac3351f4
92
+ - .git/objects/56/6625e05678ab5d52511225fa360e6934e049f6
93
+ - .git/objects/56/947322f2e948b597b9e692320ecada30315e45
94
+ - .git/objects/87/a7f6af123ffd70a8cd751b80ec4d4a9de69ab9
95
+ - .git/objects/ab/14db4dd48cb6f4c3688eb65513afac383d3584
96
+ - .git/objects/b2/9bfce970d5a817d2f7626b2984dc8de67ab774
97
+ - .git/objects/e0/a81debca6c11c68732b3769d1f83c5c3c97c09
98
+ - .git/objects/e3/74f7848330d167432299a84e43c7af18a51b87
99
+ - .git/objects/f3/5e9e44d75a11221b0c2f2b2a0bdb5b37bfbaa1
100
+ - .git/objects/pack/pack-2b55f15bfde87d738b79905b5c0788e4a4cbf3af.idx
101
+ - .git/objects/pack/pack-2b55f15bfde87d738b79905b5c0788e4a4cbf3af.pack
102
+ - .git/packed-refs
103
+ - .git/refs/heads/master
104
+ - .git/refs/remotes/origin/HEAD
105
+ - .git/refs/remotes/origin/master
106
+ - CHANGELOG.rdoc
107
+ - MIT-LICENSE
108
+ - Manifest.txt
109
+ - README.rdoc
110
+ - Rakefile
111
+ - init.rb
112
+ - lib/authlogic_oauth.rb
113
+ - lib/authlogic_oauth/acts_as_authentic.rb
114
+ - lib/authlogic_oauth/oauth_process.rb
115
+ - lib/authlogic_oauth/session.rb
116
+ - lib/authlogic_oauth/version.rb
117
+ - rails/init.rb
118
+ - test/acts_as_authentic_test.rb
119
+ - test/fixtures/users.yml
120
+ - test/lib/user.rb
121
+ - test/lib/user_session.rb
122
+ - test/session_test.rb
123
+ - test/test_helper.rb
124
+ has_rdoc: true
125
+ homepage: http://github.com/jrallison/authlogic_oauth
126
+ licenses: []
127
+
128
+ post_install_message:
129
+ rdoc_options:
130
+ - --main
131
+ - README.rdoc
132
+ require_paths:
133
+ - lib
134
+ required_ruby_version: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: "0"
139
+ version:
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: "0"
145
+ version:
146
+ requirements: []
147
+
148
+ rubyforge_project: authlogic-oauth
149
+ rubygems_version: 1.3.2
150
+ signing_key:
151
+ specification_version: 3
152
+ summary: An authlogic extension for authenticating via OAuth. (I.E. Twitter login)
153
+ test_files:
154
+ - test/acts_as_authentic_test.rb
155
+ - test/session_test.rb