devise-multi_auth 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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