omniauth-sageone 0.3.0 → 0.5.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/.github/dependabot.yml +10 -0
- data/.github/workflows/ci.yml +23 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +15 -3
- data/.ruby-version +1 -0
- data/.travis.yml +8 -0
- data/Gemfile +10 -0
- data/Guardfile +19 -0
- data/README.md +5 -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/strategies/sage_one.rb +10 -37
- data/lib/omniauth-sageone/version.rb +3 -1
- data/lib/omniauth-sageone.rb +2 -0
- data/omniauth-sageone.gemspec +6 -8
- data/spec/omniauth/strategies/sage_one_spec.rb +41 -0
- data/spec/spec_helper.rb +4 -2
- metadata +29 -78
- 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: '0912ca0f1705240f0e8469e3f428fb26a5448bffdc1eba75ea95aa30ef770367'
|
4
|
+
data.tar.gz: 03051eacff1a4a93c9dcb592461b4b9de2d99174c314ad2c0b915bf023ba7122
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fcb3bf76e057bbdde96a4b9ce5cfa5bdb9f074c37040cee31f54b191f8c6915f17a6a85d899b42beedef92e74833f71704c0a044439907b1d9158d3fecfb6aa8
|
7
|
+
data.tar.gz: aee4ea3b26ab27bb3840ef2f4d9e1cdc34ba1619347699726e1ce7987bb38e12280cadfdc6a1cfa0127f37680d0903d5c6e2653f1156d12eacdb02f200d95ab5
|
@@ -0,0 +1,23 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
ruby-version: ['3.0', '3.1', '3.2', '3.3']
|
11
|
+
|
12
|
+
steps:
|
13
|
+
- uses: actions/checkout@v3
|
14
|
+
- name: Set up Ruby ${{ matrix.ruby-version }}
|
15
|
+
uses: ruby/setup-ruby@v1
|
16
|
+
with:
|
17
|
+
ruby-version: ${{ matrix.ruby-version }}
|
18
|
+
bundler-cache: true # 'bundle install' and cache
|
19
|
+
- name: Rubocop
|
20
|
+
run: bundle exec rubocop
|
21
|
+
|
22
|
+
- name: RSpec
|
23
|
+
run: bundle exec rake
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,16 +1,28 @@
|
|
1
|
+
require:
|
2
|
+
- rubocop-rake
|
3
|
+
- rubocop-rspec
|
4
|
+
|
1
5
|
AllCops:
|
2
|
-
|
6
|
+
NewCops: enable
|
7
|
+
TargetRubyVersion: 3.0
|
3
8
|
|
4
|
-
|
9
|
+
Layout/LineLength:
|
5
10
|
Max: 100
|
6
11
|
|
7
12
|
Style/Documentation:
|
8
13
|
Enabled: false
|
9
14
|
|
10
|
-
|
15
|
+
Naming/FileName:
|
11
16
|
Exclude:
|
12
17
|
- 'lib/omniauth-sageone.rb'
|
13
18
|
|
14
19
|
Style/RegexpLiteral:
|
15
20
|
Exclude:
|
16
21
|
- 'Guardfile'
|
22
|
+
|
23
|
+
RSpec/DescribedClass:
|
24
|
+
EnforcedStyle: explicit
|
25
|
+
|
26
|
+
RSpec/FilePath:
|
27
|
+
Exclude:
|
28
|
+
- 'spec/omniauth/strategies/sage_one_spec.rb'
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.0.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
|
@@ -8,5 +10,13 @@ group :development, :test do
|
|
8
10
|
gem 'guard-bundler'
|
9
11
|
gem 'guard-rspec'
|
10
12
|
gem 'guard-rubocop'
|
13
|
+
gem 'rack-test'
|
14
|
+
gem 'rake', '~> 13.0'
|
11
15
|
gem 'rb-fsevent'
|
16
|
+
gem 'rspec', '~> 3.8'
|
17
|
+
gem 'rubocop', '~> 1.54.0'
|
18
|
+
gem 'rubocop-rake', '~> 0.6.0'
|
19
|
+
gem 'rubocop-rspec', '~> 2.22.0'
|
20
|
+
gem 'simplecov'
|
21
|
+
gem 'webmock'
|
12
22
|
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,8 @@
|
|
1
1
|
# OmniAuth SageOne
|
2
2
|
|
3
|
+
[](https://badge.fury.io/rb/omniauth-sageone)
|
4
|
+

|
5
|
+
|
3
6
|
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
7
|
|
5
8
|
## Basic Usage
|
@@ -9,7 +12,7 @@ This is an unofficial OmniAuth strategy for authenticating to SageOne. To use it
|
|
9
12
|
end
|
10
13
|
|
11
14
|
# Options for `scope` are either `readonly` or `full_access`.
|
12
|
-
|
15
|
+
|
13
16
|
## Auth Hash
|
14
17
|
|
15
18
|
The hash in `env['omniauth.auth']` will have the following information:
|
@@ -22,8 +25,7 @@ The hash in `env['omniauth.auth']` will have the following information:
|
|
22
25
|
- `resource_owner_id`: An ID returned by Sage One when fetching the access token. You'll need that value for API v3
|
23
26
|
for request signing and the `X-SITE` header that is required on API requests.
|
24
27
|
- in `info`:
|
25
|
-
- `country`: The user's country.
|
26
|
-
different countries).
|
28
|
+
- `country`: The user's country.
|
27
29
|
- in `uid`: The `requested_by_id` returned by Sage One when fetching the token.
|
28
30
|
|
29
31
|
## 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')
|
@@ -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/lib/omniauth-sageone.rb
CHANGED
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']
|
@@ -10,17 +10,15 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.homepage = 'https://github.com/jetbuilt/omniauth-sageone'
|
11
11
|
gem.licenses = 'MIT'
|
12
12
|
|
13
|
-
gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
14
13
|
gem.files = `git ls-files`.split("\n")
|
15
|
-
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
14
|
gem.name = 'omniauth-sageone'
|
17
15
|
gem.require_paths = ['lib']
|
18
16
|
gem.version = OmniAuth::SageOne::VERSION
|
19
17
|
|
18
|
+
gem.metadata['rubygems_mfa_required'] = 'true'
|
19
|
+
|
20
|
+
gem.required_ruby_version = '>= 3.0'
|
21
|
+
|
20
22
|
gem.add_dependency 'omniauth', '~> 1.0'
|
21
23
|
gem.add_dependency 'omniauth-oauth2', '~> 1.0'
|
22
|
-
gem.add_development_dependency 'rspec', '~> 2.7'
|
23
|
-
gem.add_development_dependency 'rack-test'
|
24
|
-
gem.add_development_dependency 'simplecov'
|
25
|
-
gem.add_development_dependency 'webmock'
|
26
24
|
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(OAuth2::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,99 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-sageone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jared Moody
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-07-06 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
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rspec
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ~>
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '2.7'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '2.7'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rack-test
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - '>='
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: simplecov
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - '>='
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - '>='
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: webmock
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - '>='
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - '>='
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
41
|
description: OmniAuth strategy for SageOne.
|
98
42
|
email:
|
99
43
|
- jared@jetbuilt.com
|
@@ -101,44 +45,51 @@ executables: []
|
|
101
45
|
extensions: []
|
102
46
|
extra_rdoc_files: []
|
103
47
|
files:
|
104
|
-
- .
|
105
|
-
- .
|
106
|
-
- .
|
48
|
+
- ".github/dependabot.yml"
|
49
|
+
- ".github/workflows/ci.yml"
|
50
|
+
- ".gitignore"
|
51
|
+
- ".rspec"
|
52
|
+
- ".rubocop.yml"
|
53
|
+
- ".ruby-version"
|
54
|
+
- ".travis.yml"
|
107
55
|
- Gemfile
|
108
56
|
- Guardfile
|
109
57
|
- LICENSE
|
110
58
|
- README.md
|
111
59
|
- Rakefile
|
60
|
+
- bin/_guard-core
|
61
|
+
- bin/autospec
|
62
|
+
- bin/guard
|
63
|
+
- bin/rspec
|
64
|
+
- bin/rubocop
|
112
65
|
- lib/omniauth-sageone.rb
|
113
66
|
- lib/omniauth-sageone/version.rb
|
114
67
|
- lib/omniauth/strategies/sage_one.rb
|
115
68
|
- omniauth-sageone.gemspec
|
116
|
-
- spec/omniauth/strategies/
|
69
|
+
- spec/omniauth/strategies/sage_one_spec.rb
|
117
70
|
- spec/spec_helper.rb
|
118
71
|
homepage: https://github.com/jetbuilt/omniauth-sageone
|
119
72
|
licenses:
|
120
73
|
- MIT
|
121
|
-
metadata:
|
122
|
-
|
74
|
+
metadata:
|
75
|
+
rubygems_mfa_required: 'true'
|
76
|
+
post_install_message:
|
123
77
|
rdoc_options: []
|
124
78
|
require_paths:
|
125
79
|
- lib
|
126
80
|
required_ruby_version: !ruby/object:Gem::Requirement
|
127
81
|
requirements:
|
128
|
-
- -
|
82
|
+
- - ">="
|
129
83
|
- !ruby/object:Gem::Version
|
130
|
-
version: '0'
|
84
|
+
version: '3.0'
|
131
85
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
86
|
requirements:
|
133
|
-
- -
|
87
|
+
- - ">="
|
134
88
|
- !ruby/object:Gem::Version
|
135
89
|
version: '0'
|
136
90
|
requirements: []
|
137
|
-
|
138
|
-
|
139
|
-
signing_key:
|
91
|
+
rubygems_version: 3.2.33
|
92
|
+
signing_key:
|
140
93
|
specification_version: 4
|
141
94
|
summary: OmniAuth strategy for SageOne.
|
142
|
-
test_files:
|
143
|
-
- spec/omniauth/strategies/sageone_spec.rb
|
144
|
-
- spec/spec_helper.rb
|
95
|
+
test_files: []
|