devise-multi_auth 0.1.0 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 849b74ed9b30c38c32a2852238fc16be477bcfc1
4
- data.tar.gz: acc769b30d431e3d3b1d4f4e4a455aa5811ecb09
3
+ metadata.gz: 924b94e63a554cdfcec790815eb4ef6c5b31d656
4
+ data.tar.gz: b07a406b75377d253880a7b65fd331673d3ce304
5
5
  SHA512:
6
- metadata.gz: 0360f20b3bc9ab5773364290744efc13754ac132be6f6667bc94cc875651e943b3f8d33b57282660c44de16cb27bf8a57887c5faccde944c81200a0a3a341b41
7
- data.tar.gz: c55c51743249a8221140d13c24388b024e7f2d5ac60b7e6337e6c7eeecc4ea42a9a76568461530aab5f909f3ab565943338a45f59b0d326c59ad3bcf88322664
6
+ metadata.gz: ff4c2444fdf4c281aa3db2d90cbfdd91c1e2190e3e88cdaed320e81290b16d9a7d215d8baaa7a3db7629857915be8367d78731c4f9bf7f37530de5bf01e42d64
7
+ data.tar.gz: 26a30de405894e8c669e86cace2d4fd0f5b7f67f116b48e426d0b0aaa5012eea8a1049189833fcd2df230f99799bdf8c277f1fe159415cfcd749d98f4fe58fd3
@@ -0,0 +1,5 @@
1
+ .bundle/
2
+ log/*.log
3
+ pkg/
4
+ spec/internal
5
+ Gemfile.lock
@@ -0,0 +1,14 @@
1
+ language: ruby
2
+ rvm:
3
+ - "2.0.0"
4
+
5
+ env:
6
+ global:
7
+ - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
8
+
9
+ script: 'rake spec:travis'
10
+
11
+ bundler_args: --without headless debug
12
+
13
+ before_install:
14
+ - gem install bundler
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Declare your gem's dependencies in devise-multi_auth.gemspec.
4
+ # Bundler will treat runtime dependencies like base dependencies, and
5
+ # development dependencies will be added by default to the :development group.
6
+ gemspec
7
+
8
+ # Declare any dependencies that are still in development here instead of in
9
+ # your gemspec. These might include edge Rails or gems from your path or
10
+ # Git. Remember to move these dependencies to your gemspec before releasing
11
+ # your gem to rubygems.org.
12
+
13
+ # To use debugger
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  ##########################################################################
2
2
  #
3
- # Copyright 2014 Jeremy Friesen
3
+ # Copyright 2014 University of Notre Dame
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
1
1
  module Devise::MultiAuth
2
- class AuthenticationsController < Devise::OmniauthCallbacksController
2
+ class OmniauthCallbacksController < Devise::OmniauthCallbacksController
3
3
 
4
4
  Devise.omniauth_providers.each do |provider|
5
5
  define_method(provider) do
@@ -1,18 +1,10 @@
1
1
  module Devise::MultiAuth
2
- class CaptureSuccessfulExternalAuthentication
3
- def self.call(user, auth = {})
2
+ module CaptureSuccessfulExternalAuthentication
3
+ module_function
4
+ def call(user, auth = {})
4
5
  return true unless auth.present?
5
- new(user, auth).call
6
- end
7
-
8
- attr_accessor :user, :auth
9
- def initialize(user, auth)
10
- @user = user
11
- @auth = auth
12
- end
13
-
14
- def call
15
- object = Authentication.where(user: user).where(auth.slice(:provider, :uid)).first_or_initialize
6
+ where_conditions = { user: user, provider: auth.fetch(:provider), uid: auth.fetch(:uid) }
7
+ object = Authentication.where(where_conditions).first_or_initialize
16
8
  object.access_token = auth.fetch(:credentials)[:token]
17
9
  object.refresh_token = auth.fetch(:credentials)[:refresh_token]
18
10
  object.save!
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 4 gems installed from the root of your application.
3
+
4
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
5
+ ENGINE_PATH = File.expand_path('../../lib/devise/multi_auth/engine', __FILE__)
6
+
7
+ require 'rails/all'
8
+ require 'rails/engine/commands'
@@ -0,0 +1,35 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+
3
+ # Maintain your gem's version:
4
+ require "devise/multi_auth/version"
5
+
6
+ # Describe your gem and declare its dependencies:
7
+ Gem::Specification.new do |s|
8
+ s.name = "devise-multi_auth"
9
+ s.version = Devise::MultiAuth::VERSION
10
+ s.authors = ["jeremy.n.friesen@gmail.com"]
11
+ s.email = ["jeremy.n.friesen@gmail.com"]
12
+ s.homepage = "https://github.com/jeremyf/devise-multi_auth"
13
+ s.summary = "A Devise plugin for exposing multiple authentication providers via omniauth."
14
+ s.description = "A Devise plugin for exposing multiple authentication providers via omniauth."
15
+
16
+ s.files = `git ls-files -z`.split("\x0")
17
+ # Deliberately removing bin executables as it appears to relate to
18
+ # https://github.com/cbeer/engine_cart/issues/9
19
+ s.executables = s.executables = s.files.grep(%r{^bin/}) do |f|
20
+ f == 'bin/rails' ? nil : File.basename(f)
21
+ end.compact
22
+ s.test_files = s.files.grep(/^(test|spec|features)\//)
23
+ s.require_paths = ['lib']
24
+
25
+ s.add_dependency "rails", "~> 4.0"
26
+ s.add_dependency "devise", "~> 3.2"
27
+ s.add_dependency "omniauth", "~> 1.2"
28
+
29
+ s.add_development_dependency 'database_cleaner', '1.0.1'
30
+ s.add_development_dependency "sqlite3"
31
+ s.add_development_dependency "engine_cart"
32
+ s.add_development_dependency "rspec-rails", '~> 2.12'
33
+ s.add_development_dependency "omniauth-github"
34
+ s.add_development_dependency "factory_girl"
35
+ end
@@ -1,5 +1,5 @@
1
1
  module Devise
2
2
  module MultiAuth
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -27,7 +27,7 @@ module Devise::MultiAuth
27
27
  if options[:with_omniauth_github]
28
28
  gem "omniauth-github"
29
29
  end
30
- routing_code = %(, controllers: { omniauth_callbacks: 'devise/multi_auth/authentications' }\n)
30
+ routing_code = %(, controllers: { omniauth_callbacks: 'devise/multi_auth/omniauth_callbacks' }\n)
31
31
  insert_into_file 'config/routes.rb', routing_code, { :after => /devise_for :users/, :verbose => false }
32
32
  end
33
33
  end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ module Devise::MultiAuth
4
+ describe OmniauthCallbacksController do
5
+ let(:provider) { :github }
6
+ let(:uid) { '12345' }
7
+ before(:each) do
8
+ @request.env["devise.mapping"] = Devise.mappings[:user]
9
+ OmniAuth.config.add_mock(provider, {uid: uid, credentials: {}})
10
+ request.env["omniauth.auth"] = OmniAuth.config.mock_auth[provider]
11
+ end
12
+
13
+ context 'GET provider (as callback)' do
14
+ context 'without a registered user' do
15
+ before(:each) do
16
+ Authentication.should_receive(:find_user_by_provider_and_uid).with(provider.to_s, uid).and_return(nil)
17
+ end
18
+ it 'should redirect to signup' do
19
+ get provider
20
+ expect(response).to redirect_to('/users/sign_up')
21
+ end
22
+ end
23
+
24
+ context 'with a registered user' do
25
+ let(:user) { FactoryGirl.create(:devise_multi_auth_user) }
26
+ before(:each) do
27
+ Authentication.should_receive(:find_user_by_provider_and_uid).with(provider.to_s, uid).and_return(user)
28
+ end
29
+ # Adding an ID because this request is hitting the database.
30
+ # Trying to figure out why.
31
+ it 'should assign the user and redirect to home' do
32
+ get provider
33
+ expect(flash[:notice]).to_not match(/translation missing/i)
34
+ expect(assigns(:user)).to eq(user)
35
+ expect(response).to be_redirect
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,9 @@
1
+ # Read about factories at https://github.com/thoughtbot/factory_girl
2
+
3
+ FactoryGirl.define do
4
+ factory :authentication, class: 'Devise::MultiAuth::Authentication' do
5
+ association :user, strategy: :build_stubbed
6
+ provider "twitter"
7
+ uid "1234"
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # Read about factories at https://github.com/thoughtbot/factory_girl
2
+
3
+ FactoryGirl.define do
4
+ factory :devise_multi_auth_user, class: 'User' do
5
+ email 'test@test.com'
6
+ password '12345678'
7
+ password_confirmation '12345678'
8
+ end
9
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ module Devise::MultiAuth
4
+ describe AccessTokenError do
5
+ let(:parameters) { {provider: 'provider', uid: 'uid' }}
6
+ subject { described_class.new(parameters) }
7
+ it { should be_a_kind_of(AccessTokenError)}
8
+ end
9
+
10
+ describe AccessTokenNotFound do
11
+ let(:parameters) { {provider: 'provider', uid: 'uid' }}
12
+ subject { described_class.new(parameters) }
13
+ it { should be_a_kind_of(AccessTokenError)}
14
+ end
15
+
16
+ describe AccessTokenUnverified do
17
+ let(:parameters) { {provider: 'provider', uid: 'uid' }}
18
+ subject { described_class.new(parameters) }
19
+ it { should be_a_kind_of(AccessTokenError)}
20
+ end
21
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Devise::MultiAuth do
4
+
5
+ context '.oauth_client_for' do
6
+ context 'for registered oauth client' do
7
+ let(:provider) { 'github' }
8
+ subject { described_class.oauth_client_for(provider) }
9
+ its(:client_credentials) { should respond_to :get_token }
10
+ end
11
+
12
+ context 'for unregistered oauth client' do
13
+ let(:provider) { 'not_github' }
14
+ it 'raises an exception' do
15
+ expect {
16
+ described_class.oauth_client_for(provider)
17
+ }.to raise_error KeyError
18
+ end
19
+ end
20
+ end
21
+
22
+ context '.capture_successful_external_authentication' do
23
+ let(:service) { double('Service') }
24
+ let(:user) { double('User') }
25
+ let(:auth) { double('Auth') }
26
+ it 'should delegate to the associated service' do
27
+ service.should_receive(:call).with(user, auth)
28
+ described_class.capture_successful_external_authentication(user, auth, service: service)
29
+ end
30
+ end
31
+
32
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Devise::MultiAuth do
4
+
5
+ context '.oauth_client_for' do
6
+ context 'for registered oauth client' do
7
+ let(:provider) { 'github' }
8
+ subject { described_class.oauth_client_for(provider) }
9
+ its(:client_credentials) { should respond_to :get_token }
10
+ end
11
+
12
+ context 'for unregistered oauth client' do
13
+ let(:provider) { 'not_github' }
14
+ it 'raises an exception' do
15
+ expect {
16
+ described_class.oauth_client_for(provider)
17
+ }.to raise_error KeyError
18
+ end
19
+ end
20
+ end
21
+
22
+ context '.capture_successful_external_authentication' do
23
+ let(:service) { double('Service') }
24
+ let(:user) { double('User') }
25
+ let(:auth) { double('Auth') }
26
+ it 'should delegate to the associated service' do
27
+ service.should_receive(:call).with(user, auth)
28
+ described_class.capture_successful_external_authentication(user, auth, service: service)
29
+ end
30
+ end
31
+
32
+ end
@@ -0,0 +1,93 @@
1
+ require 'spec_helper'
2
+
3
+ module Devise::MultiAuth
4
+ describe Authentication do
5
+ let(:provider) { 'orcid' }
6
+ let(:uid) { '0000-0002-1117-8571' }
7
+
8
+ let(:attributes) {
9
+ {
10
+ "user_id"=>1,
11
+ "provider"=>provider,
12
+ "uid"=>uid,
13
+ "access_token"=>"4a8e9a1a-e53a-448b-b81d-e541c347a711",
14
+ "refresh_token"=>"b39b89ce-92df-4d99-bd25-309a869d201a"
15
+ }
16
+ }
17
+
18
+ context '.to_access_token' do
19
+ let(:client) { double('Client') }
20
+ context 'with a created token'do
21
+ before(:each) do
22
+ described_class.create!(attributes)
23
+ end
24
+ subject { described_class.to_access_token(uid: uid, provider: provider, client: client) }
25
+ it { should respond_to :get }
26
+ it { should respond_to :post }
27
+ it { should respond_to :refresh! }
28
+ it { should respond_to :expires? }
29
+ it { should respond_to :expires? }
30
+ end
31
+
32
+ context 'with a missing token' do
33
+ it 'raises an error' do
34
+ expect{ described_class.to_access_token(uid: uid, provider: provider, client: client) }.to raise_error(AccessTokenNotFound)
35
+ end
36
+ end
37
+ end
38
+
39
+ context '#to_access_token' do
40
+ let(:client) { double('Client') }
41
+ subject { described_class.new(attributes) }
42
+
43
+ context 'without verified authentication' do
44
+ its(:verified?) { should eq(true) }
45
+ it { expect(subject.to_access_token(client: client)).to respond_to :get }
46
+ it { expect(subject.to_access_token(client: client)).to respond_to :post }
47
+ it { expect(subject.to_access_token(client: client)).to respond_to :refresh! }
48
+ it { expect(subject.to_access_token(client: client)).to respond_to :expires? }
49
+ end
50
+
51
+ context 'without verified authentication' do
52
+ subject { described_class.new(attributes) }
53
+ let(:attributes) {
54
+ {
55
+ "user_id"=>1,
56
+ "provider"=>provider,
57
+ "uid"=>uid,
58
+ }
59
+ }
60
+ its(:verified?) { should eq(false) }
61
+ it {
62
+ expect { subject.to_access_token(client: client) }.to raise_error(Devise::MultiAuth::AccessTokenUnverified)
63
+ }
64
+ end
65
+ end
66
+
67
+ context '.find_by_provider_and_uid' do
68
+ it 'retrieves the object' do
69
+ authentication = Authentication.create!(attributes)
70
+
71
+ expect(described_class.find_by_provider_and_uid(provider, uid)).to eq(authentication)
72
+ end
73
+ end
74
+
75
+ context '.find_user_by_provider_and_uid' do
76
+ let(:user) { mock_model(User) }
77
+ let(:authentication) { described_class.new(user: user) }
78
+
79
+ it 'returns a user if it matches' do
80
+ described_class.should_receive(:find_by_provider_and_uid).with(provider, uid).and_return(authentication)
81
+ expect(
82
+ described_class.find_user_by_provider_and_uid(provider, uid)
83
+ ).to eq(user)
84
+ end
85
+
86
+ it 'returns nil if there are no match' do
87
+ described_class.should_receive(:find_by_provider_and_uid).with(provider, uid).and_return(nil)
88
+ expect(described_class.find_user_by_provider_and_uid(provider, uid)).to eq(nil)
89
+ end
90
+
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ module Devise::MultiAuth
4
+ describe CaptureSuccessfulExternalAuthentication do
5
+ context '.call' do
6
+ let(:user) { FactoryGirl.build_stubbed(:devise_multi_auth_user) }
7
+ let(:orcid_profile_id) { '0100-0012' }
8
+ let(:auth) {
9
+ {
10
+ provider: 'orcid',
11
+ uid: orcid_profile_id,
12
+ credentials: {
13
+ token: "453d7dc4-cfed-4e8e-a06d-e035bbb2b835",
14
+ refresh_token: "1ae4a374-d3ac-4e3f-b1b3-72956cc37f49",
15
+ expires_at: 2023450872,
16
+ expires: true
17
+ }
18
+ }
19
+ }
20
+
21
+ it 'creates an authentication' do
22
+ CaptureSuccessfulExternalAuthentication.call(user, auth)
23
+
24
+ authentication = Authentication.last
25
+ expect(authentication.access_token).to eq auth[:credentials][:token]
26
+ expect(authentication.refresh_token).to eq auth[:credentials][:refresh_token]
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,73 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ if ENV['COVERAGE']
4
+ require 'simplecov'
5
+ SimpleCov.start 'rails'
6
+ SimpleCov.command_name "spec"
7
+ end
8
+
9
+ require 'engine_cart'
10
+ require 'omniauth-github'
11
+
12
+ require File.expand_path("../internal/config/environment.rb", __FILE__)
13
+
14
+ EngineCart.load_application!
15
+ require 'rspec/rails'
16
+ require 'rspec/autorun'
17
+ require 'database_cleaner'
18
+ require 'factory_girl'
19
+
20
+ # Requires supporting ruby files with custom matchers and macros, etc,
21
+ # in spec/support/ and its subdirectories.
22
+ Dir[File.expand_path("../support/**/*.rb",__FILE__)].each {|f| require f}
23
+ Dir[File.expand_path("../factories/**/*.rb",__FILE__)].each {|f| require f}
24
+
25
+ # From https://github.com/plataformatec/devise/wiki/How-To:-Stub-authentication-in-controller-specs
26
+ module ControllerHelpers
27
+ def sign_in(user = double('user'))
28
+ if user.nil?
29
+ request.env['warden'].stub(:authenticate!).
30
+ and_throw(:warden, {:scope => :user})
31
+ controller.stub :current_user => nil
32
+ else
33
+ request.env['warden'].stub :authenticate! => user
34
+ controller.stub :current_user => user
35
+ end
36
+ end
37
+ end
38
+
39
+ RSpec.configure do |config|
40
+ config.include ControllerHelpers, type: :controller
41
+
42
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
43
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
44
+
45
+ config.infer_spec_type_from_file_location!
46
+
47
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
48
+ # examples within a transaction, remove the following line or assign false
49
+ # instead of true.
50
+ config.use_transactional_fixtures = true
51
+
52
+ # If true, the base class of anonymous controllers will be inferred
53
+ # automatically. This will be the default behavior in future versions of
54
+ # rspec-rails.
55
+ config.infer_base_class_for_anonymous_controllers = false
56
+
57
+ # Run specs in random order to surface order dependencies. If you find an
58
+ # order dependency and want to debug it, you can fix the order by providing
59
+ # the seed, which is printed after each run.
60
+ # --seed 1234
61
+ config.order = "random"
62
+
63
+ config.before(:suite) do
64
+ DatabaseCleaner.strategy = :truncation
65
+ end
66
+ config.before(:each) do
67
+ OmniAuth.config.test_mode = true
68
+ DatabaseCleaner.start
69
+ end
70
+ config.after(:each) do
71
+ DatabaseCleaner.clean
72
+ end
73
+ end
@@ -0,0 +1,3 @@
1
+ RSpec.configure do |config|
2
+ config.include Devise::TestHelpers, :type => :controller
3
+ end
@@ -0,0 +1,3 @@
1
+ # extra gems to load into the test app go here
2
+ gem 'database_cleaner', '1.0.1'
3
+ gem 'factory_girl'
@@ -0,0 +1,23 @@
1
+ require 'rails/generators'
2
+
3
+ class TestAppGenerator < Rails::Generators::Base
4
+ source_root "spec/test_app_templates"
5
+
6
+ def install_devise_multi_auth
7
+ generate 'devise:multi_auth:install --install_devise --skip_migrate --with_omniauth_github'
8
+ end
9
+
10
+ def install_omniauth_strategies
11
+ config_code = ", :omniauthable, :omniauth_providers => [:github]"
12
+ insert_into_file 'app/models/user.rb', config_code, { :after => /:validatable *$/, :verbose => false }
13
+
14
+ init_code = %(\n config.omniauth :github, ENV['GITHUB_APP_ID'], ENV['GITHUB_APP_SECRET'], :scope => 'user,public_repo')
15
+ insert_into_file 'config/initializers/devise.rb', init_code, {after: /Devise\.setup.*$/, verbose: true}
16
+ end
17
+
18
+ def install_migrate
19
+ rake 'db:migrate'
20
+ end
21
+
22
+ end
23
+
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise-multi_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - jeremy.n.friesen@gmail.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-06 00:00:00.000000000 Z
11
+ date: 2014-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 4.0.3
19
+ version: '4.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 4.0.3
26
+ version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: devise
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 3.2.2
33
+ version: '3.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 3.2.2
40
+ version: '3.2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: omniauth
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.2.1
47
+ version: '1.2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.2.1
54
+ version: '1.2'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: database_cleaner
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -70,70 +70,70 @@ dependencies:
70
70
  name: sqlite3
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: engine_cart
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rspec-rails
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '2.12'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: '2.12'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: omniauth-github
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: factory_girl
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - '>='
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  description: A Devise plugin for exposing multiple authentication providers via omniauth.
@@ -143,21 +143,38 @@ executables: []
143
143
  extensions: []
144
144
  extra_rdoc_files: []
145
145
  files:
146
- - app/controllers/devise/multi_auth/authentications_controller.rb
146
+ - ".gitignore"
147
+ - ".travis.yml"
148
+ - Gemfile
149
+ - LICENSE
150
+ - README.md
151
+ - Rakefile
152
+ - app/controllers/devise/multi_auth/omniauth_callbacks_controller.rb
147
153
  - app/models/devise/multi_auth/authentication.rb
148
154
  - app/services/devise/multi_auth/capture_successful_external_authentication.rb
155
+ - bin/rails
149
156
  - db/migrate/20140204141526_create_authentications.rb
157
+ - devise-multi_auth.gemspec
158
+ - lib/devise-multi_auth.rb
159
+ - lib/devise/multi_auth.rb
150
160
  - lib/devise/multi_auth/engine.rb
151
161
  - lib/devise/multi_auth/exceptions.rb
152
162
  - lib/devise/multi_auth/version.rb
153
- - lib/devise/multi_auth.rb
154
- - lib/devise-multi_auth.rb
155
163
  - lib/devise_multi_auth.rb
156
164
  - lib/generators/devise/multi_auth/install/install_generator.rb
157
165
  - lib/tasks/devise-multi_auth_tasks.rake
158
- - LICENSE
159
- - Rakefile
160
- - README.md
166
+ - spec/controllers/devise/multi_auth/omniauth_callbacks_controller_spec.rb
167
+ - spec/factories/authentications.rb
168
+ - spec/factories/users.rb
169
+ - spec/lib/devise/multi_auth/exceptions_spec.rb
170
+ - spec/lib/devise/multi_auth_spec.rb
171
+ - spec/lib/devise_multi_auth_spec.rb
172
+ - spec/models/devise/multi_auth/authentication_spec.rb
173
+ - spec/services/devise/multi_auth/capture_successful_external_authentication_spec.rb
174
+ - spec/spec_helper.rb
175
+ - spec/support/devise_support.rb
176
+ - spec/test_app_templates/Gemfile.extra
177
+ - spec/test_app_templates/lib/generators/test_app_generator.rb
161
178
  homepage: https://github.com/jeremyf/devise-multi_auth
162
179
  licenses: []
163
180
  metadata: {}
@@ -167,18 +184,30 @@ require_paths:
167
184
  - lib
168
185
  required_ruby_version: !ruby/object:Gem::Requirement
169
186
  requirements:
170
- - - '>='
187
+ - - ">="
171
188
  - !ruby/object:Gem::Version
172
189
  version: '0'
173
190
  required_rubygems_version: !ruby/object:Gem::Requirement
174
191
  requirements:
175
- - - '>='
192
+ - - ">="
176
193
  - !ruby/object:Gem::Version
177
194
  version: '0'
178
195
  requirements: []
179
196
  rubyforge_project:
180
- rubygems_version: 2.0.14
197
+ rubygems_version: 2.2.2
181
198
  signing_key:
182
199
  specification_version: 4
183
200
  summary: A Devise plugin for exposing multiple authentication providers via omniauth.
184
- test_files: []
201
+ test_files:
202
+ - spec/controllers/devise/multi_auth/omniauth_callbacks_controller_spec.rb
203
+ - spec/factories/authentications.rb
204
+ - spec/factories/users.rb
205
+ - spec/lib/devise/multi_auth/exceptions_spec.rb
206
+ - spec/lib/devise/multi_auth_spec.rb
207
+ - spec/lib/devise_multi_auth_spec.rb
208
+ - spec/models/devise/multi_auth/authentication_spec.rb
209
+ - spec/services/devise/multi_auth/capture_successful_external_authentication_spec.rb
210
+ - spec/spec_helper.rb
211
+ - spec/support/devise_support.rb
212
+ - spec/test_app_templates/Gemfile.extra
213
+ - spec/test_app_templates/lib/generators/test_app_generator.rb