omniauth-sageone 0.3.0 → 0.4.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 +5 -5
- data/.gitignore +1 -0
- data/.rubocop.yml +15 -2
- data/.ruby-version +1 -0
- data/.travis.yml +11 -0
- data/Gemfile +4 -0
- data/Guardfile +19 -0
- data/README.md +4 -3
- data/Rakefile +6 -2
- data/bin/_guard-core +29 -0
- data/bin/autospec +29 -0
- data/bin/guard +29 -0
- data/bin/rspec +29 -0
- data/bin/rubocop +29 -0
- data/lib/omniauth-sageone.rb +2 -0
- data/lib/omniauth-sageone/version.rb +3 -1
- data/lib/omniauth/strategies/sage_one.rb +10 -37
- data/omniauth-sageone.gemspec +5 -3
- data/spec/omniauth/strategies/sage_one_spec.rb +41 -0
- data/spec/spec_helper.rb +4 -2
- metadata +55 -30
- data/spec/omniauth/strategies/sageone_spec.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 196b0252cc0f01190baa64c0c6da2e309a098ff4c3efe55580f2a1c2c474e5db
|
4
|
+
data.tar.gz: d207a0bb4dd3f2c704aee331b3ac0ed5c153d91b922d27be33e1731da68ce698
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4d4d150040f642fa60534918e67d161d66325d223964984527751f5803cdfffc365cf5ed1db1cb7c1af0194d3d3112a5913e7e5f0e915184109ee7823677f2a
|
7
|
+
data.tar.gz: f17b7493cc18a5c8403289ce9be4784ccdf6de55152b0dad737847da84080bb79e48167bf44285f70a97950c1a8a156deec5cd7bbef654ab73a806922bd44c0d
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,5 +1,11 @@
|
|
1
|
+
require: rubocop-rspec
|
2
|
+
|
1
3
|
AllCops:
|
2
|
-
TargetRubyVersion: 2.
|
4
|
+
TargetRubyVersion: 2.3
|
5
|
+
|
6
|
+
Metrics/BlockLength:
|
7
|
+
ExcludedMethods:
|
8
|
+
- 'describe'
|
3
9
|
|
4
10
|
Metrics/LineLength:
|
5
11
|
Max: 100
|
@@ -7,10 +13,17 @@ Metrics/LineLength:
|
|
7
13
|
Style/Documentation:
|
8
14
|
Enabled: false
|
9
15
|
|
10
|
-
|
16
|
+
Naming/FileName:
|
11
17
|
Exclude:
|
12
18
|
- 'lib/omniauth-sageone.rb'
|
13
19
|
|
14
20
|
Style/RegexpLiteral:
|
15
21
|
Exclude:
|
16
22
|
- 'Guardfile'
|
23
|
+
|
24
|
+
RSpec/DescribedClass:
|
25
|
+
EnforcedStyle: explicit
|
26
|
+
|
27
|
+
RSpec/FilePath:
|
28
|
+
Exclude:
|
29
|
+
- 'spec/omniauth/strategies/sage_one_spec.rb'
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.6
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
source 'http://rubygems.org'
|
2
4
|
|
3
5
|
# Specify your gem's dependencies in omniauth-sageone.gemspec
|
@@ -9,4 +11,6 @@ group :development, :test do
|
|
9
11
|
gem 'guard-rspec'
|
10
12
|
gem 'guard-rubocop'
|
11
13
|
gem 'rb-fsevent'
|
14
|
+
gem 'rubocop', '~> 0.73'
|
15
|
+
gem 'rubocop-rspec', '~> 1.34'
|
12
16
|
end
|
data/Guardfile
CHANGED
@@ -1,8 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
guard 'bundler' do
|
2
4
|
watch('Gemfile')
|
3
5
|
watch('omniauth-sageone.gemspec')
|
4
6
|
end
|
5
7
|
|
8
|
+
guard :rspec, cmd: 'bin/rspec' do
|
9
|
+
require 'guard/rspec/dsl'
|
10
|
+
dsl = Guard::RSpec::Dsl.new(self)
|
11
|
+
|
12
|
+
# Feel free to open issues for suggestions and improvements
|
13
|
+
|
14
|
+
# RSpec files
|
15
|
+
rspec = dsl.rspec
|
16
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
17
|
+
watch(rspec.spec_support) { rspec.spec_dir }
|
18
|
+
watch(rspec.spec_files)
|
19
|
+
|
20
|
+
# Ruby files
|
21
|
+
ruby = dsl.ruby
|
22
|
+
dsl.watch_spec_files_for(ruby.lib_files)
|
23
|
+
end
|
24
|
+
|
6
25
|
guard :rubocop do
|
7
26
|
watch(%r{.+\.rb$})
|
8
27
|
watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# OmniAuth SageOne
|
2
2
|
|
3
|
+
[](https://badge.fury.io/rb/omniauth-sageone)
|
4
|
+
|
3
5
|
This is an unofficial OmniAuth strategy for authenticating to SageOne. To use it, you'll need to sign up for a Sage One OAuth2 Application ID and Secret.
|
4
6
|
|
5
7
|
## Basic Usage
|
@@ -9,7 +11,7 @@ This is an unofficial OmniAuth strategy for authenticating to SageOne. To use it
|
|
9
11
|
end
|
10
12
|
|
11
13
|
# Options for `scope` are either `readonly` or `full_access`.
|
12
|
-
|
14
|
+
|
13
15
|
## Auth Hash
|
14
16
|
|
15
17
|
The hash in `env['omniauth.auth']` will have the following information:
|
@@ -22,8 +24,7 @@ The hash in `env['omniauth.auth']` will have the following information:
|
|
22
24
|
- `resource_owner_id`: An ID returned by Sage One when fetching the access token. You'll need that value for API v3
|
23
25
|
for request signing and the `X-SITE` header that is required on API requests.
|
24
26
|
- in `info`:
|
25
|
-
- `country`: The user's country.
|
26
|
-
different countries).
|
27
|
+
- `country`: The user's country.
|
27
28
|
- in `uid`: The `requested_by_id` returned by Sage One when fetching the token.
|
28
29
|
|
29
30
|
## See Also
|
data/Rakefile
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
require 'bundler/gem_tasks'
|
3
5
|
require 'rspec/core/rake_task'
|
6
|
+
require 'rubocop/rake_task'
|
4
7
|
|
5
|
-
|
6
|
-
task default: :spec
|
8
|
+
RuboCop::RakeTask.new
|
7
9
|
|
8
10
|
desc 'Run specs'
|
9
11
|
RSpec::Core::RakeTask.new
|
12
|
+
|
13
|
+
task default: %i[rubocop spec]
|
data/bin/_guard-core
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application '_guard-core' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require 'pathname'
|
12
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path('bundle', __dir__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require 'rubygems'
|
27
|
+
require 'bundler/setup'
|
28
|
+
|
29
|
+
load Gem.bin_path('guard', '_guard-core')
|
data/bin/autospec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'autospec' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require 'pathname'
|
12
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path('bundle', __dir__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require 'rubygems'
|
27
|
+
require 'bundler/setup'
|
28
|
+
|
29
|
+
load Gem.bin_path('rspec-core', 'autospec')
|
data/bin/guard
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'guard' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require 'pathname'
|
12
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path('bundle', __dir__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require 'rubygems'
|
27
|
+
require 'bundler/setup'
|
28
|
+
|
29
|
+
load Gem.bin_path('guard', 'guard')
|
data/bin/rspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rspec' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require 'pathname'
|
12
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path('bundle', __dir__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require 'rubygems'
|
27
|
+
require 'bundler/setup'
|
28
|
+
|
29
|
+
load Gem.bin_path('rspec-core', 'rspec')
|
data/bin/rubocop
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rubocop' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require 'pathname'
|
12
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path('bundle', __dir__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require 'rubygems'
|
27
|
+
require 'bundler/setup'
|
28
|
+
|
29
|
+
load Gem.bin_path('rubocop', 'rubocop')
|
data/lib/omniauth-sageone.rb
CHANGED
@@ -1,23 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'omniauth-oauth2'
|
2
4
|
|
3
5
|
module OmniAuth
|
4
6
|
module Strategies
|
5
7
|
class SageOne < OmniAuth::Strategies::OAuth2
|
6
|
-
TOKEN_URLS = {
|
7
|
-
'ca' => 'https://mysageone.ca.sageone.com/oauth2/token',
|
8
|
-
'de' => 'https://oauth.eu.sageone.com/token',
|
9
|
-
'es' => 'https://oauth.eu.sageone.com/token',
|
10
|
-
'fr' => 'https://oauth.eu.sageone.com/token',
|
11
|
-
'gb' => 'https://app.sageone.com/oauth2/token',
|
12
|
-
'ie' => 'https://app.sageone.com/oauth2/token',
|
13
|
-
'us' => 'https://mysageone.na.sageone.com/oauth2/token'
|
14
|
-
}.freeze
|
15
|
-
|
16
8
|
option :client_options,
|
17
|
-
authorize_url: 'https://www.sageone.com/oauth2/auth/central'
|
9
|
+
authorize_url: 'https://www.sageone.com/oauth2/auth/central',
|
10
|
+
token_url: 'https://oauth.accounting.sage.com/token'
|
18
11
|
|
19
12
|
option :authorize_params,
|
20
|
-
response_type: 'code'
|
13
|
+
response_type: 'code',
|
14
|
+
filter: 'apiv3.1'
|
21
15
|
|
22
16
|
uid do
|
23
17
|
access_token['requested_by_id']
|
@@ -35,38 +29,17 @@ module OmniAuth
|
|
35
29
|
}
|
36
30
|
end
|
37
31
|
|
38
|
-
# SageOne has different token endpoints for each available country. The country is returned in
|
39
|
-
# the authorization callback. Configure the OAuth client to use that information by
|
40
|
-
# customizing the client options
|
41
|
-
def client
|
42
|
-
::OAuth2::Client.new(options.client_id, options.client_secret, client_options)
|
43
|
-
end
|
44
|
-
|
45
|
-
protected
|
46
|
-
|
47
32
|
# Override this method to remove the query string from the callback_url because SageOne
|
48
33
|
# requires an exact match
|
49
|
-
def
|
50
|
-
|
51
|
-
request.params['code'],
|
52
|
-
{
|
53
|
-
redirect_uri: callback_url.split('?').first
|
54
|
-
}.merge(token_params.to_hash(symbolize_keys: true)),
|
55
|
-
deep_symbolize(options.auth_token_params)
|
56
|
-
)
|
34
|
+
def callback_url
|
35
|
+
super.split('?').first
|
57
36
|
end
|
58
37
|
|
38
|
+
protected
|
39
|
+
|
59
40
|
def country
|
60
41
|
request.env ? request[:country].try(:downcase) : options.client_options[:country]
|
61
42
|
end
|
62
|
-
|
63
|
-
# Override client_options[:token_url] using the country from ether the request or the
|
64
|
-
# provided country option
|
65
|
-
def client_options
|
66
|
-
hash = options.client_options
|
67
|
-
hash.merge!(token_url: TOKEN_URLS[country]) if country
|
68
|
-
deep_symbolize(hash)
|
69
|
-
end
|
70
43
|
end
|
71
44
|
end
|
72
45
|
end
|
data/omniauth-sageone.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require File.expand_path('
|
3
|
+
require File.expand_path('lib/omniauth-sageone/version', __dir__)
|
4
4
|
|
5
5
|
Gem::Specification.new do |gem|
|
6
6
|
gem.authors = ['Jared Moody']
|
@@ -19,8 +19,10 @@ Gem::Specification.new do |gem|
|
|
19
19
|
|
20
20
|
gem.add_dependency 'omniauth', '~> 1.0'
|
21
21
|
gem.add_dependency 'omniauth-oauth2', '~> 1.0'
|
22
|
-
|
22
|
+
|
23
23
|
gem.add_development_dependency 'rack-test'
|
24
|
+
gem.add_development_dependency 'rake', '~> 10.0'
|
25
|
+
gem.add_development_dependency 'rspec', '~> 3.8'
|
24
26
|
gem.add_development_dependency 'simplecov'
|
25
27
|
gem.add_development_dependency 'webmock'
|
26
28
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe OmniAuth::Strategies::SageOne do
|
6
|
+
let(:access_token) { instance_double('AccessToken', options: {}) }
|
7
|
+
|
8
|
+
let(:sageone) { OmniAuth::Strategies::SageOne.new({}) }
|
9
|
+
|
10
|
+
before { allow(sageone).to receive(:access_token).and_return(access_token) }
|
11
|
+
|
12
|
+
describe 'client options' do
|
13
|
+
subject(:client_options) { sageone.options.client_options }
|
14
|
+
|
15
|
+
it 'has correct authorize url' do
|
16
|
+
expect(client_options.authorize_url).to eq('https://www.sageone.com/oauth2/auth/central')
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'has correct token url' do
|
20
|
+
expect(client_options.token_url).to eq('https://oauth.accounting.sage.com/token')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'authorize params' do
|
25
|
+
it 'contains the filter' do
|
26
|
+
expect(sageone.options.authorize_params['filter']).to eq('apiv3.1')
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe '#callback_url' do
|
31
|
+
before do
|
32
|
+
allow(sageone).to receive(:full_host).and_return('https://example.com')
|
33
|
+
allow(sageone).to receive(:script_name).and_return('/sub_uri')
|
34
|
+
allow(sageone).to receive(:query_string).and_return('?country=usa')
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'does not contain the query string' do
|
38
|
+
expect(sageone.callback_url).to eq('https://example.com/sub_uri/auth/sageone/callback')
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
$LOAD_PATH.unshift File.expand_path(__dir__)
|
4
|
+
$LOAD_PATH.unshift File.expand_path('../lib', __dir__)
|
3
5
|
require 'simplecov'
|
4
6
|
SimpleCov.start
|
5
7
|
require 'rspec'
|
metadata
CHANGED
@@ -1,119 +1,145 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-sageone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jared Moody
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.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
26
|
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: omniauth-oauth2
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.0'
|
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
40
|
version: '1.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rack-test
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
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: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
61
|
+
version: '10.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
68
|
+
version: '10.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.8'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.8'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: simplecov
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
|
-
- -
|
87
|
+
- - ">="
|
74
88
|
- !ruby/object:Gem::Version
|
75
89
|
version: '0'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- -
|
94
|
+
- - ">="
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: webmock
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
|
-
- -
|
101
|
+
- - ">="
|
88
102
|
- !ruby/object:Gem::Version
|
89
103
|
version: '0'
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
|
-
- -
|
108
|
+
- - ">="
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0'
|
97
111
|
description: OmniAuth strategy for SageOne.
|
98
112
|
email:
|
99
113
|
- jared@jetbuilt.com
|
100
|
-
executables:
|
114
|
+
executables:
|
115
|
+
- _guard-core
|
116
|
+
- autospec
|
117
|
+
- guard
|
118
|
+
- rspec
|
119
|
+
- rubocop
|
101
120
|
extensions: []
|
102
121
|
extra_rdoc_files: []
|
103
122
|
files:
|
104
|
-
- .gitignore
|
105
|
-
- .rspec
|
106
|
-
- .rubocop.yml
|
123
|
+
- ".gitignore"
|
124
|
+
- ".rspec"
|
125
|
+
- ".rubocop.yml"
|
126
|
+
- ".ruby-version"
|
127
|
+
- ".travis.yml"
|
107
128
|
- Gemfile
|
108
129
|
- Guardfile
|
109
130
|
- LICENSE
|
110
131
|
- README.md
|
111
132
|
- Rakefile
|
133
|
+
- bin/_guard-core
|
134
|
+
- bin/autospec
|
135
|
+
- bin/guard
|
136
|
+
- bin/rspec
|
137
|
+
- bin/rubocop
|
112
138
|
- lib/omniauth-sageone.rb
|
113
139
|
- lib/omniauth-sageone/version.rb
|
114
140
|
- lib/omniauth/strategies/sage_one.rb
|
115
141
|
- omniauth-sageone.gemspec
|
116
|
-
- spec/omniauth/strategies/
|
142
|
+
- spec/omniauth/strategies/sage_one_spec.rb
|
117
143
|
- spec/spec_helper.rb
|
118
144
|
homepage: https://github.com/jetbuilt/omniauth-sageone
|
119
145
|
licenses:
|
@@ -125,20 +151,19 @@ require_paths:
|
|
125
151
|
- lib
|
126
152
|
required_ruby_version: !ruby/object:Gem::Requirement
|
127
153
|
requirements:
|
128
|
-
- -
|
154
|
+
- - ">="
|
129
155
|
- !ruby/object:Gem::Version
|
130
156
|
version: '0'
|
131
157
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
158
|
requirements:
|
133
|
-
- -
|
159
|
+
- - ">="
|
134
160
|
- !ruby/object:Gem::Version
|
135
161
|
version: '0'
|
136
162
|
requirements: []
|
137
|
-
|
138
|
-
rubygems_version: 2.0.14.1
|
163
|
+
rubygems_version: 3.0.3
|
139
164
|
signing_key:
|
140
165
|
specification_version: 4
|
141
166
|
summary: OmniAuth strategy for SageOne.
|
142
167
|
test_files:
|
143
|
-
- spec/omniauth/strategies/
|
168
|
+
- spec/omniauth/strategies/sage_one_spec.rb
|
144
169
|
- spec/spec_helper.rb
|