devise_rpx_connectable 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 780088c7b880a015801030a4678ec6fb349b9319
4
+ data.tar.gz: 8bf1ad0df57ece9d1a3a02fb209455302deedeef
5
+ SHA512:
6
+ metadata.gz: 0a12c6e522e07d8d5f3b6128e4beac09c422a23e4d81ce44d44504baa7dd4b662919d19e2d6a545e2eba58aadbf273dfd4262e2353a8b800d31430ee1e26da58
7
+ data.tar.gz: 6f3598cc95c1f74524606e9aa0c6b652f6d096572555638381eefc90ef668ea40bd49049963027ebe20390a5d35fe1df14fbf71b65376ffdb7871ce0b5ac67f0
@@ -0,0 +1,6 @@
1
+ .DS_Store
2
+ pkg
3
+ *.log
4
+ .*~
5
+ .bundle
6
+ .rvmrc
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
@@ -0,0 +1,88 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ devise_rpx_connectable (0.3.0)
5
+ devise (>= 2.1.2)
6
+ rpx_now (~> 0.7.0)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actionpack (3.2.13)
12
+ activemodel (= 3.2.13)
13
+ activesupport (= 3.2.13)
14
+ builder (~> 3.0.0)
15
+ erubis (~> 2.7.0)
16
+ journey (~> 1.0.4)
17
+ rack (~> 1.4.5)
18
+ rack-cache (~> 1.2)
19
+ rack-test (~> 0.6.1)
20
+ sprockets (~> 2.2.1)
21
+ activemodel (3.2.13)
22
+ activesupport (= 3.2.13)
23
+ builder (~> 3.0.0)
24
+ activesupport (3.2.13)
25
+ i18n (= 0.6.1)
26
+ multi_json (~> 1.0)
27
+ bcrypt-ruby (3.0.1)
28
+ builder (3.0.4)
29
+ devise (2.2.4)
30
+ bcrypt-ruby (~> 3.0)
31
+ orm_adapter (~> 0.1)
32
+ railties (~> 3.1)
33
+ warden (~> 1.2.1)
34
+ diff-lcs (1.1.3)
35
+ erubis (2.7.0)
36
+ hike (1.2.3)
37
+ i18n (0.6.1)
38
+ journey (1.0.4)
39
+ json (1.8.0)
40
+ json_pure (1.8.0)
41
+ multi_json (1.7.7)
42
+ orm_adapter (0.4.0)
43
+ rack (1.4.5)
44
+ rack-cache (1.2)
45
+ rack (>= 0.4)
46
+ rack-ssl (1.3.3)
47
+ rack
48
+ rack-test (0.6.2)
49
+ rack (>= 1.0)
50
+ railties (3.2.13)
51
+ actionpack (= 3.2.13)
52
+ activesupport (= 3.2.13)
53
+ rack-ssl (~> 1.3.2)
54
+ rake (>= 0.8.7)
55
+ rdoc (~> 3.4)
56
+ thor (>= 0.14.6, < 2.0)
57
+ rake (0.9.2.2)
58
+ rdoc (3.12.2)
59
+ json (~> 1.4)
60
+ rpx_now (0.7.0)
61
+ json_pure
62
+ rspec (2.8.0)
63
+ rspec-core (~> 2.8.0)
64
+ rspec-expectations (~> 2.8.0)
65
+ rspec-mocks (~> 2.8.0)
66
+ rspec-core (2.8.0)
67
+ rspec-expectations (2.8.0)
68
+ diff-lcs (~> 1.1.2)
69
+ rspec-mocks (2.8.0)
70
+ sprockets (2.2.2)
71
+ hike (~> 1.2)
72
+ multi_json (~> 1.0)
73
+ rack (~> 1.0)
74
+ tilt (~> 1.1, != 1.3.0)
75
+ thor (0.18.1)
76
+ tilt (1.4.1)
77
+ warden (1.2.1)
78
+ rack (>= 1.0)
79
+
80
+ PLATFORMS
81
+ ruby
82
+
83
+ DEPENDENCIES
84
+ bundler (> 1.1.0)
85
+ devise_rpx_connectable!
86
+ rake (~> 0.9.2.2)
87
+ rdoc (~> 3.11)
88
+ rspec (~> 2.8.0)
@@ -26,13 +26,13 @@ Please note that this is an unofficial library. It is neither affiliated with, n
26
26
 
27
27
  h2. Dependencies
28
28
 
29
- Devise RPX Connectable should be compatible with the latest Rails and Devise versions (currently Rails 3.0 and Devise 1.1.2).
29
+ Devise RPX Connectable should be compatible with the latest Rails and Devise versions (currently Rails 3.0+ and Devise 2.1.2+).
30
30
 
31
31
  IMPORTANT : This gem is now ONLY COMPATIBLE with Rails 3, if you want to use it with Rails 2, please use version 0.1.3.
32
32
 
33
33
  h2. Installation
34
34
 
35
- As usual... Add @gem "devise_rpx_connectable"@ in your Gemfile.lock...
35
+ As usual... Add @gem "devise_rpx_connectable"@ in your Gemfile...
36
36
 
37
37
  h2. Setup
38
38
 
@@ -127,7 +127,7 @@ Read the RPXNow gem documentation for more information about this...
127
127
  def before_rpx_success(rpx_user)
128
128
  # Do something with rpx_user...
129
129
  end
130
-
130
+
131
131
  def before_rpx_auto_create(rpx_user)
132
132
  # Do something with rpx_user
133
133
  end
data/Rakefile CHANGED
@@ -1,30 +1,19 @@
1
- # encoding: utf-8
2
- require 'rubygems'
3
- require 'rake'
4
- require 'rake/rdoctask'
5
- require File.join(File.dirname(__FILE__), 'lib', 'devise_rpx_connectable', 'version')
1
+ require "bundler/gem_tasks"
2
+ require 'rspec'
3
+ require 'rspec/core/rake_task'
6
4
 
7
- NAME = "devise_rpx_connectable"
8
-
9
- begin
10
- gem 'jeweler'
11
- require 'jeweler'
12
- Jeweler::Tasks.new do |spec|
13
- spec.name = NAME
14
- spec.version = ::Devise::RpxConnectable::VERSION
15
- spec.summary = %{Devise << RPX}
16
- spec.description = spec.summary
17
- spec.homepage = "http://github.com/slainer68/#{spec.name}"
18
- spec.authors = ["Nicolas Blanco"]
19
- spec.email = "slainer68@gmail.com"
5
+ desc "Run all test examples"
6
+ RSpec::Core::RakeTask.new do |t|
7
+ t.rspec_opts = ["-c", "-f progress"]
8
+ t.pattern = 'spec/**/*_spec.rb'
9
+ end
20
10
 
21
- spec.files = FileList['[A-Z]*', File.join(*%w[{lib,rails} ** *]).to_s]
11
+ task :default => :spec
22
12
 
23
- spec.add_dependency 'devise', '>= 1.1.2'
24
- spec.add_dependency 'rpx_now', '>= 0.6.23'
25
- end
26
- Jeweler::GemcutterTasks.new
27
- rescue LoadError
28
- puts "Jeweler - or one of its dependencies - is not available. " <<
29
- "Install it with: sudo gem install jeweler -s http://gemcutter.org"
13
+ require 'rdoc/task'
14
+ Rake::RDocTask.new do |rdoc|
15
+ rdoc.rdoc_dir = 'rdoc'
16
+ rdoc.title = "devise_rpx_connectable"
17
+ rdoc.rdoc_files.include('README*')
18
+ rdoc.rdoc_files.include('lib/**/*.rb')
30
19
  end
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'devise_rpx_connectable/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "devise_rpx_connectable"
8
+ gem.version = Devise::RpxConnectable::VERSION
9
+ gem.authors = ["Nicolas Blanco"]
10
+ gem.email = ["slainer68@gmail.com"]
11
+ gem.description = %q{Authenticate your users with RPX in your Rails application using Devise}
12
+ gem.summary = %q{Devise << RPX}
13
+ gem.homepage = "https://github.com/slainer68/devise_rpx_connectable"
14
+
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ["lib"]
19
+
20
+ gem.add_runtime_dependency(%q<devise>, [">= 2.1.2"])
21
+ gem.add_runtime_dependency(%q<rpx_now>, ["~> 0.7.0"])
22
+
23
+ gem.add_development_dependency(%q<bundler>, ["> 1.1.0"])
24
+ gem.add_development_dependency(%q<rake>, ["~> 0.9.2.2"])
25
+ gem.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
26
+ gem.add_development_dependency(%q<rdoc>, ["~> 3.11"])
27
+ end
@@ -10,29 +10,30 @@ require 'devise_rpx_connectable/model'
10
10
  require 'devise_rpx_connectable/strategy'
11
11
  Warden::Strategies.add(:rpx_connectable, Devise::RpxConnectable::Strategies::RpxConnectable)
12
12
 
13
- require 'devise_rpx_connectable/schema'
14
13
  require 'devise_rpx_connectable/view_helpers'
15
14
 
16
15
  module Devise
17
16
  mattr_accessor :rpx_identifier_field
18
17
  @@rpx_identifier_field = :rpx_identifier
19
-
18
+
20
19
  mattr_accessor :rpx_auto_create_account
21
20
  @@rpx_auto_create_account = true
22
-
21
+
23
22
  mattr_accessor :rpx_extended_user_data
24
23
  @@rpx_extended_user_data = true
25
-
26
- mattr_accessor :rpx_additional_user_data
24
+
25
+ mattr_accessor :rpx_additional_user_data
27
26
  @@rpx_additional_user_data = []
28
-
27
+
29
28
  mattr_accessor :rpx_application_name
30
29
  @@rpx_application_name = nil
31
30
  end
32
31
 
33
32
  I18n.load_path.unshift File.join(File.dirname(__FILE__), *%w[devise_rpx_connectable locales en.yml])
34
33
 
35
- Devise.add_module(:rpx_connectable,
36
- :strategy => true,
34
+ Devise.add_module(:rpx_connectable, {
37
35
  :controller => :sessions,
38
- :model => 'devise_rpx_connectable/model')
36
+ :model => 'devise_rpx_connectable/model',
37
+ :route => { :session => [nil, :new, :destroy] },
38
+ :strategy => true
39
+ })
@@ -41,6 +41,13 @@ module Devise #:nodoc:
41
41
  # Only populate +email+ field if it's available (e.g. if +authenticable+ module is used).
42
42
  self.email = attributes[:email] || '' if self.respond_to?(:email)
43
43
 
44
+ # Populate optional request fields
45
+ if attributes[:request_keys]
46
+ attributes[:request_keys].each do |k, v|
47
+ self.send(:"#{k}=", v)
48
+ end
49
+ end
50
+
44
51
  # Lazy hack: These database fields are required if +authenticable+/+confirmable+
45
52
  # module(s) is used. Could be avoided with :null => true for authenticatable
46
53
  # migration, but keeping this to avoid unnecessary problems.
@@ -79,7 +86,7 @@ module Devise #:nodoc:
79
86
  def on_before_rpx_success(rpx_user)
80
87
  self.send(:before_rpx_success, rpx_user) if self.respond_to?(:before_rpx_success)
81
88
  end
82
-
89
+
83
90
  # Hook that gets called before the auto creation of the user.
84
91
  # Therefore, this hook is only called when rpx_auto_create_account config option is enabled.
85
92
  # Useful for fetching additional user info (etc.) from RPX.
@@ -122,7 +129,8 @@ module Devise #:nodoc:
122
129
  :rpx_identifier_field,
123
130
  :rpx_auto_create_account,
124
131
  :rpx_extended_user_data,
125
- :rpx_additional_user_data
132
+ :rpx_additional_user_data,
133
+ :request_keys
126
134
  )
127
135
 
128
136
  # Alias don't work for some reason, so...a more Ruby-ish alias
@@ -136,7 +144,7 @@ module Devise #:nodoc:
136
144
  #
137
145
  def authenticate_with_rpx(attributes = {})
138
146
  if attributes[:identifier].present?
139
- self.find_for_rpx(attributes[:identifier])
147
+ self.find_for_rpx(attributes[:identifier], attributes[:request_keys])
140
148
  end
141
149
  end
142
150
 
@@ -146,8 +154,11 @@ module Devise #:nodoc:
146
154
  # Overwrite to add customized conditions, create a join, or maybe use a
147
155
  # namedscope to filter records while authenticating.
148
156
  #
149
- def find_for_rpx(identifier)
150
- self.first(:conditions => { rpx_identifier_field => identifier })
157
+ def find_for_rpx(identifier, request_keys)
158
+ conditions = { rpx_identifier_field => identifier }
159
+ conditions.merge! request_keys
160
+
161
+ self.where(conditions).first
151
162
  end
152
163
 
153
164
  # Contains the logic used in authentication. Overwritten by other devise modules.
@@ -18,29 +18,34 @@ module Devise #:nodoc:
18
18
  def authenticate!
19
19
  klass = mapping.to
20
20
  raise StandardError, "RPXNow API key is not defined, please see the documentation of RPXNow gem to setup it." unless RPXNow.api_key.present?
21
- begin
22
- rpx_user = (RPXNow.user_data(params[:token], :extended => klass.rpx_extended_user_data, :additional => klass.rpx_additional_user_data) rescue nil)
23
- fail!(:rpx_invalid) and return unless rpx_user
24
-
25
- if user = klass.authenticate_with_rpx(:identifier => rpx_user["identifier"])
26
- user.on_before_rpx_success(rpx_user)
27
- success!(user)
28
- return
29
- end
30
-
31
- fail!(:rpx_invalid) and return unless klass.rpx_auto_create_account?
32
-
33
- user = klass.new
34
- user.store_rpx_credentials!(rpx_user)
35
- user.on_before_rpx_auto_create(rpx_user)
36
-
37
- user.save(:validate => false)
21
+
22
+ request_keys = klass.request_keys.inject({}) do |res, k|
23
+ res[k] = params[k]
24
+ res
25
+ end
26
+
27
+ rpx_user = RPXNow.user_data(params[:token], {
28
+ :additional => klass.rpx_additional_user_data,
29
+ :extended => klass.rpx_extended_user_data
30
+ })
31
+
32
+ fail!(:rpx_invalid) and return unless rpx_user
33
+
34
+ if user = klass.authenticate_with_rpx(:identifier => rpx_user["identifier"], :request_keys => request_keys )
38
35
  user.on_before_rpx_success(rpx_user)
39
36
  success!(user)
40
-
41
- rescue
42
- fail!(:rpx_invalid)
37
+ return
43
38
  end
39
+
40
+ fail!(:rpx_invalid) and return unless klass.rpx_auto_create_account?
41
+
42
+ user = klass.new
43
+ user.store_rpx_credentials!(rpx_user.merge(:request_keys => request_keys))
44
+ user.on_before_rpx_auto_create(rpx_user)
45
+
46
+ user.save(:validate => false)
47
+ user.on_before_rpx_success(rpx_user)
48
+ success!(user)
44
49
  end
45
50
 
46
51
  protected
@@ -1,6 +1,6 @@
1
1
  module Devise
2
2
  module RpxConnectable
3
- VERSION = "0.2.2"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
6
6
 
@@ -19,8 +19,7 @@ module Devise #:nodoc:
19
19
  def link_to_rpx(link_text, link_url, options={})
20
20
  options = { :unobtrusive => true }.merge(options)
21
21
  token_url = build_token_url(link_url)
22
- out = RPXNow.popup_code(link_text, rpx_application_name_from_options(options), token_url, options)
23
- out.respond_to?(:html_safe) ? out.html_safe : out
22
+ RPXNow.popup_code(link_text, rpx_application_name_from_options(options), token_url, options).html_safe
24
23
  end
25
24
 
26
25
  # Embeds the RPX connection iframe in your page.
@@ -34,8 +33,7 @@ module Devise #:nodoc:
34
33
  #
35
34
  def embed_rpx(link_url, options={})
36
35
  token_url = build_token_url(link_url)
37
- out = RPXNow.embed_code(rpx_application_name_from_options(options), token_url, options)
38
- out.respond_to?(:html_safe) ? out.html_safe : out
36
+ RPXNow.embed_code(rpx_application_name_from_options(options), token_url, options).html_safe
39
37
  end
40
38
 
41
39
  # Returns the necessary JS code for the RPX popup.
@@ -49,8 +47,7 @@ module Devise #:nodoc:
49
47
  #
50
48
  def javascript_include_rpx(link_url, options={})
51
49
  token_url = build_token_url(link_url)
52
- out = RPXNow.popup_source(rpx_application_name_from_options(options), token_url, options)
53
- out.respond_to?(:html_safe) ? out.html_safe : out
50
+ RPXNow.popup_source(rpx_application_name_from_options(options), token_url, options).html_safe
54
51
  end
55
52
 
56
53
  protected
@@ -0,0 +1,87 @@
1
+ require "spec_helper"
2
+ require "active_support/all"
3
+
4
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'devise_rpx_connectable', 'strategy')
5
+
6
+ class User
7
+ def self.rpx_extended_user_data; true; end
8
+ def self.rpx_additional_user_data; true; end
9
+ def self.request_keys
10
+ @request_keys || {}
11
+ end
12
+ def self.request_keys=(value)
13
+ @request_keys = value
14
+ end
15
+ end
16
+
17
+ class RPXNow
18
+ @@api_key = "abcdefgh"
19
+ cattr_accessor :api_key
20
+ end
21
+
22
+ RPX_USER_DATA = { "identifier" => "superpipo_user", :request_keys => {}}
23
+ PARAMS = { :token => "rpx_token" }
24
+
25
+ describe 'DeviseRpxConnectable' do
26
+ before(:each) do
27
+ @strategy = Devise::RpxConnectable::Strategies::RpxConnectable.new
28
+ @mapping = mock(:mapping)
29
+ @mapping.should_receive(:to).and_return(User)
30
+ @strategy.should_receive(:mapping).and_return(@mapping)
31
+ @strategy.should_receive(:params).and_return(PARAMS)
32
+
33
+ @user = User.new
34
+ end
35
+
36
+ it "should fail if RPX returns no valid user" do
37
+ RPXNow.should_receive(:user_data).and_return(nil)
38
+
39
+ @strategy.should_receive(:"fail!").with(:rpx_invalid).and_return(true)
40
+
41
+ lambda { @strategy.authenticate! }.should_not raise_error
42
+ end
43
+
44
+ describe 'when the RPX user is valid' do
45
+ before(:each) do
46
+ RPXNow.should_receive(:user_data).and_return(RPX_USER_DATA)
47
+ end
48
+
49
+ it "should authenticate if a user exists in database" do
50
+ User.should_receive(:authenticate_with_rpx).with({ :identifier => RPX_USER_DATA["identifier"], :request_keys => {} }).and_return(@user)
51
+
52
+ @user.should_receive(:on_before_rpx_success).with(RPX_USER_DATA).and_return(true)
53
+
54
+ @strategy.should_receive(:"success!").with(@user).and_return(true)
55
+
56
+ lambda { @strategy.authenticate! }.should_not raise_error
57
+ end
58
+
59
+ describe 'when no user exists in database' do
60
+ before(:each) do
61
+ User.should_receive(:authenticate_with_rpx).with({ :identifier => RPX_USER_DATA["identifier"], :request_keys => {} }).and_return(nil)
62
+ end
63
+
64
+ it "should fail unless rpx_auto_create_account" do
65
+ User.should_receive(:"rpx_auto_create_account?").and_return(false)
66
+ @strategy.should_receive(:"fail!").with(:rpx_invalid).and_return(true)
67
+
68
+ lambda { @strategy.authenticate! }.should_not raise_error
69
+ end
70
+
71
+ it "should create a new user and success if rpx_auto_create_account" do
72
+ User.should_receive(:"rpx_auto_create_account?").and_return(true)
73
+
74
+ User.should_receive(:new).and_return(@user)
75
+ @user.should_receive(:"store_rpx_credentials!").with(RPX_USER_DATA).and_return(true)
76
+ @user.should_receive(:on_before_rpx_auto_create).with(RPX_USER_DATA).and_return(true)
77
+ @user.should_receive(:save).with({ :validate => false }).and_return(true)
78
+ @user.should_receive(:on_before_rpx_success).with(RPX_USER_DATA).and_return(true)
79
+
80
+ @strategy.should_receive(:"success!").with(@user).and_return(true)
81
+
82
+ lambda { @strategy.authenticate! }.should_not raise_error
83
+ end
84
+ end
85
+ end
86
+ end
87
+
@@ -0,0 +1,11 @@
1
+ module Devise
2
+ class Strategies
3
+ class Base
4
+ end
5
+ end
6
+ end
7
+
8
+ RSpec.configure do |config|
9
+ config.mock_with :rspec
10
+ end
11
+
metadata CHANGED
@@ -1,108 +1,145 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: devise_rpx_connectable
3
- version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 2
9
- - 2
10
- version: 0.2.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Nicolas Blanco
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2010-09-13 00:00:00 +02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
11
+ date: 2013-06-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
22
14
  name: devise
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 23
30
- segments:
31
- - 1
32
- - 1
33
- - 2
34
- version: 1.1.2
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 2.1.2
35
20
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: rpx_now
39
21
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 41
46
- segments:
47
- - 0
48
- - 6
49
- - 23
50
- version: 0.6.23
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 2.1.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: rpx_now
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 0.7.0
51
34
  type: :runtime
52
- version_requirements: *id002
53
- description: Devise << RPX
54
- email: slainer68@gmail.com
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 0.7.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>'
46
+ - !ruby/object:Gem::Version
47
+ version: 1.1.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>'
53
+ - !ruby/object:Gem::Version
54
+ version: 1.1.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.9.2.2
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 0.9.2.2
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 2.8.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 2.8.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: rdoc
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '3.11'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '3.11'
97
+ description: Authenticate your users with RPX in your Rails application using Devise
98
+ email:
99
+ - slainer68@gmail.com
55
100
  executables: []
56
-
57
101
  extensions: []
58
-
59
- extra_rdoc_files:
60
- - README.textile
61
- files:
102
+ extra_rdoc_files: []
103
+ files:
104
+ - .gitignore
105
+ - Gemfile
106
+ - Gemfile.lock
62
107
  - MIT-LICENSE
63
108
  - README.textile
64
109
  - Rakefile
110
+ - devise_rpx_connectable.gemspec
65
111
  - lib/devise_rpx_connectable.rb
66
112
  - lib/devise_rpx_connectable/locales/en.yml
67
113
  - lib/devise_rpx_connectable/model.rb
68
- - lib/devise_rpx_connectable/schema.rb
69
114
  - lib/devise_rpx_connectable/strategy.rb
70
115
  - lib/devise_rpx_connectable/version.rb
71
116
  - lib/devise_rpx_connectable/view_helpers.rb
72
117
  - rails/init.rb
73
- has_rdoc: true
74
- homepage: http://github.com/slainer68/devise_rpx_connectable
118
+ - spec/devise_rpx_connectable_spec.rb
119
+ - spec/spec_helper.rb
120
+ homepage: https://github.com/slainer68/devise_rpx_connectable
75
121
  licenses: []
76
-
122
+ metadata: {}
77
123
  post_install_message:
78
- rdoc_options:
79
- - --charset=UTF-8
80
- require_paths:
124
+ rdoc_options: []
125
+ require_paths:
81
126
  - lib
82
- required_ruby_version: !ruby/object:Gem::Requirement
83
- none: false
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- hash: 3
88
- segments:
89
- - 0
90
- version: "0"
91
- required_rubygems_version: !ruby/object:Gem::Requirement
92
- none: false
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- hash: 3
97
- segments:
98
- - 0
99
- version: "0"
127
+ required_ruby_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ required_rubygems_version: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - '>='
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
100
137
  requirements: []
101
-
102
138
  rubyforge_project:
103
- rubygems_version: 1.3.7
139
+ rubygems_version: 2.0.2
104
140
  signing_key:
105
- specification_version: 3
141
+ specification_version: 4
106
142
  summary: Devise << RPX
107
- test_files: []
108
-
143
+ test_files:
144
+ - spec/devise_rpx_connectable_spec.rb
145
+ - spec/spec_helper.rb
@@ -1,21 +0,0 @@
1
- # encoding: utf-8
2
- require 'devise/schema'
3
-
4
- module Devise #:nodoc:
5
- module RpxConnectable #:nodoc:
6
-
7
- module Schema
8
-
9
- # Database migration schema for RPX.
10
- #
11
- def rpx_connectable
12
- apply_devise_schema ::Devise.rpx_identifier_field, String, :limit => 255
13
- end
14
-
15
- end
16
- end
17
- end
18
-
19
- Devise::Schema.module_eval do
20
- include ::Devise::RpxConnectable::Schema
21
- end