glogin 0.9.0 → 0.11.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 +4 -4
- data/.github/workflows/codecov.yml +2 -2
- data/.github/workflows/pdd.yml +11 -0
- data/.github/workflows/rake.yml +3 -3
- data/.github/workflows/xcop.yml +11 -0
- data/.rultor.yml +3 -5
- data/.simplecov +1 -1
- data/Gemfile +10 -2
- data/LICENSE.txt +1 -1
- data/README.md +0 -2
- data/Rakefile +1 -1
- data/glogin.gemspec +3 -10
- data/lib/glogin/auth.rb +2 -2
- data/lib/glogin/codec.rb +53 -48
- data/lib/glogin/cookie.rb +2 -2
- data/lib/glogin/version.rb +3 -3
- data/lib/glogin.rb +2 -2
- data/test/glogin/test_auth.rb +1 -1
- data/test/glogin/test_codec.rb +7 -1
- data/test/glogin/test_cookie.rb +1 -1
- data/test/test__helper.rb +1 -5
- data/test/test_glogin.rb +2 -2
- metadata +15 -111
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 47dc331e9d98417c38d66ddbeae5b6424284ede02d5a9e1680bc1c3eba6dd3f2
|
|
4
|
+
data.tar.gz: abaa0b7082a1b641a21b1c5828e8ff775cefe0bd78bae72f01d8a5592098ea00
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9212904c0f496ae545e401e995bc4d1e47e23c9c0d6644fda205a2cad7e46160244417455a3333501c8e542a2707985aea87319dd3fe7982b4b72a2e2d30fb9b
|
|
7
|
+
data.tar.gz: e093b8ef78894ac6350d8b36f5cacd4251c04957a85b8742d0bd4c7170ff064f77da087172590c5f8715dbb6ba04efd887fa8f4c0821d8c7690d01f280f9a90c
|
data/.github/workflows/rake.yml
CHANGED
|
@@ -12,12 +12,12 @@ jobs:
|
|
|
12
12
|
name: test
|
|
13
13
|
strategy:
|
|
14
14
|
matrix:
|
|
15
|
-
os: [ubuntu-
|
|
16
|
-
ruby: [2.7]
|
|
15
|
+
os: [ubuntu-20.04, macos-12]
|
|
16
|
+
ruby: [2.7, 3.2]
|
|
17
17
|
runs-on: ${{ matrix.os }}
|
|
18
18
|
steps:
|
|
19
19
|
- uses: actions/checkout@v3
|
|
20
|
-
- uses:
|
|
20
|
+
- uses: ruby/setup-ruby@v1
|
|
21
21
|
with:
|
|
22
22
|
ruby-version: ${{ matrix.ruby }}
|
|
23
23
|
- run: bundle update
|
data/.rultor.yml
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
docker:
|
|
2
|
-
image: yegor256/rultor-image:1.
|
|
2
|
+
image: yegor256/rultor-image:1.19.0
|
|
3
3
|
assets:
|
|
4
4
|
rubygems.yml: yegor256/home#assets/rubygems.yml
|
|
5
5
|
install: |
|
|
6
|
+
sudo gem install openssl -- --with-openssl-dir=/usr/local/rvm/rubies/ruby-3.0.1/lib/ruby/3.0.0/openssl
|
|
6
7
|
pdd -f /dev/null
|
|
7
8
|
sudo bundle install --no-color "--gemfile=$(pwd)/Gemfile"
|
|
8
9
|
release:
|
|
10
|
+
pre: false
|
|
9
11
|
script: |-
|
|
10
12
|
[[ "${tag}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || exit -1
|
|
11
13
|
bundle exec rake
|
|
@@ -19,7 +21,3 @@ release:
|
|
|
19
21
|
merge:
|
|
20
22
|
script: |-
|
|
21
23
|
bundle exec rake
|
|
22
|
-
deploy:
|
|
23
|
-
script: |-
|
|
24
|
-
echo "There is nothing to deploy"
|
|
25
|
-
exit -1
|
data/.simplecov
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2017-
|
|
4
|
+
# Copyright (c) 2017-2023 Yegor Bugayenko
|
|
5
5
|
#
|
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
# of this software and associated documentation files (the 'Software'), to deal
|
data/Gemfile
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2017-
|
|
4
|
+
# Copyright (c) 2017-2023 Yegor Bugayenko
|
|
5
5
|
#
|
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -22,5 +22,13 @@
|
|
|
22
22
|
# SOFTWARE.
|
|
23
23
|
|
|
24
24
|
source 'https://rubygems.org'
|
|
25
|
-
ruby '~>2.3'
|
|
26
25
|
gemspec
|
|
26
|
+
|
|
27
|
+
gem 'minitest', '5.18.0', require: false
|
|
28
|
+
gem 'rake', '13.0.6', require: false
|
|
29
|
+
gem 'rdoc', '6.5.0', require: false
|
|
30
|
+
gem 'rspec-rails', '5.1.2', require: false
|
|
31
|
+
gem 'rubocop', '1.51.0', require: false
|
|
32
|
+
gem 'rubocop-rspec', '2.22.0', require: false
|
|
33
|
+
gem 'simplecov', '0.22.0', require: false
|
|
34
|
+
gem 'webmock', '3.18.1', require: false
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<img src="/logo.svg" width="64px" height="64px"/>
|
|
2
2
|
|
|
3
|
-
[](https://www.0crat.com/p/C3RFVLU72)
|
|
4
3
|
[](http://www.rultor.com/p/yegor256/glogin)
|
|
5
4
|
[](https://www.jetbrains.com/ruby/)
|
|
6
5
|
|
|
@@ -10,7 +9,6 @@
|
|
|
10
9
|
[](https://codeclimate.com/github/yegor256/glogin/maintainability)
|
|
11
10
|
[](https://codecov.io/github/yegor256/glogin?branch=master)
|
|
12
11
|
[](http://rubydoc.info/github/yegor256/glogin/master/frames)
|
|
13
|
-
|
|
14
12
|

|
|
15
13
|
[](https://hitsofcode.com/view/github/yegor256/glogin)
|
|
16
14
|
[](https://github.com/yegor256/glogin/blob/master/LICENSE.txt)
|
data/Rakefile
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2017-
|
|
4
|
+
# Copyright (c) 2017-2023 Yegor Bugayenko
|
|
5
5
|
#
|
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
# of this software and associated documentation files (the 'Software'), to deal
|
data/glogin.gemspec
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2017-
|
|
3
|
+
# Copyright (c) 2017-2023 Yegor Bugayenko
|
|
4
4
|
#
|
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -41,14 +41,7 @@ Gem::Specification.new do |s|
|
|
|
41
41
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
42
42
|
s.rdoc_options = ['--charset=UTF-8']
|
|
43
43
|
s.extra_rdoc_files = ['README.md', 'LICENSE.txt']
|
|
44
|
-
s.add_runtime_dependency 'base58', '0.2
|
|
45
|
-
s.
|
|
46
|
-
s.add_development_dependency 'minitest', '5.16.1'
|
|
47
|
-
s.add_development_dependency 'rake', '13.0.6'
|
|
48
|
-
s.add_development_dependency 'rdoc', '6.4.0'
|
|
49
|
-
s.add_development_dependency 'rspec-rails', '5.1.2'
|
|
50
|
-
s.add_development_dependency 'rubocop', '1.31.1'
|
|
51
|
-
s.add_development_dependency 'rubocop-rspec', '2.11.1'
|
|
52
|
-
s.add_development_dependency 'webmock', '3.14.0'
|
|
44
|
+
s.add_runtime_dependency 'base58', '~>0.2'
|
|
45
|
+
s.add_runtime_dependency 'openssl', '~>3.1'
|
|
53
46
|
s.metadata['rubygems_mfa_required'] = 'true'
|
|
54
47
|
end
|
data/lib/glogin/auth.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2017-
|
|
4
|
+
# Copyright (c) 2017-2023 Yegor Bugayenko
|
|
5
5
|
#
|
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -28,7 +28,7 @@ require 'cgi'
|
|
|
28
28
|
|
|
29
29
|
# GLogin main module.
|
|
30
30
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
31
|
-
# Copyright:: Copyright (c) 2017-
|
|
31
|
+
# Copyright:: Copyright (c) 2017-2023 Yegor Bugayenko
|
|
32
32
|
# License:: MIT
|
|
33
33
|
module GLogin
|
|
34
34
|
#
|
data/lib/glogin/codec.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2017-
|
|
4
|
+
# Copyright (c) 2017-2023 Yegor Bugayenko
|
|
5
5
|
#
|
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -28,60 +28,65 @@ require 'base58'
|
|
|
28
28
|
|
|
29
29
|
# Codec.
|
|
30
30
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
31
|
-
# Copyright:: Copyright (c) 2017-
|
|
31
|
+
# Copyright:: Copyright (c) 2017-2023 Yegor Bugayenko
|
|
32
32
|
# License:: MIT
|
|
33
|
-
|
|
34
|
-
#
|
|
35
|
-
class
|
|
33
|
+
module GLogin
|
|
34
|
+
# The codec
|
|
35
|
+
class Codec
|
|
36
|
+
# When can't decode.
|
|
37
|
+
class DecodingError < StandardError; end
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
def initialize(secret = '')
|
|
40
|
+
raise 'Secret can\'t be nil' if secret.nil?
|
|
41
|
+
@secret = secret
|
|
42
|
+
end
|
|
41
43
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
44
|
+
def decrypt(text)
|
|
45
|
+
raise 'Text can\'t be nil' if text.nil?
|
|
46
|
+
if @secret.empty?
|
|
47
|
+
text
|
|
48
|
+
else
|
|
49
|
+
cpr = cipher
|
|
50
|
+
cpr.decrypt
|
|
51
|
+
cpr.key = digest(cpr.key_len)
|
|
52
|
+
raise DecodingError unless /^[a-zA-Z0-9]+$/.match?(text)
|
|
53
|
+
plain = Base58.base58_to_binary(text)
|
|
54
|
+
raise DecodingError if plain.empty?
|
|
55
|
+
decrypted = cpr.update(plain)
|
|
56
|
+
decrypted << cpr.final
|
|
57
|
+
salt, body = decrypted.to_s.split(' ', 2)
|
|
58
|
+
raise DecodingError if salt.empty?
|
|
59
|
+
raise DecodingError if body.nil?
|
|
60
|
+
body.force_encoding('UTF-8')
|
|
61
|
+
body
|
|
62
|
+
end
|
|
63
|
+
rescue OpenSSL::Cipher::CipherError => e
|
|
64
|
+
raise DecodingError, e.message
|
|
60
65
|
end
|
|
61
|
-
rescue OpenSSL::Cipher::CipherError => e
|
|
62
|
-
raise DecodingError, e.message
|
|
63
|
-
end
|
|
64
66
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
67
|
+
def encrypt(text)
|
|
68
|
+
raise 'Text can\'t be nil' if text.nil?
|
|
69
|
+
if @secret.empty?
|
|
70
|
+
text
|
|
71
|
+
else
|
|
72
|
+
cpr = cipher
|
|
73
|
+
cpr.encrypt
|
|
74
|
+
cpr.key = digest(cpr.key_len)
|
|
75
|
+
salt = SecureRandom.base64(Random.rand(8..32))
|
|
76
|
+
encrypted = cpr.update("#{salt} #{text}")
|
|
77
|
+
encrypted << cpr.final
|
|
78
|
+
Base58.binary_to_base58(encrypted)
|
|
79
|
+
end
|
|
77
80
|
end
|
|
78
|
-
end
|
|
79
81
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
private
|
|
83
|
+
|
|
84
|
+
def digest(len)
|
|
85
|
+
Digest::SHA1.hexdigest(@secret)[0..len - 1]
|
|
86
|
+
end
|
|
83
87
|
|
|
84
|
-
|
|
85
|
-
|
|
88
|
+
def cipher
|
|
89
|
+
OpenSSL::Cipher.new('aes-256-cbc')
|
|
90
|
+
end
|
|
86
91
|
end
|
|
87
92
|
end
|
data/lib/glogin/cookie.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2017-
|
|
4
|
+
# Copyright (c) 2017-2023 Yegor Bugayenko
|
|
5
5
|
#
|
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -28,7 +28,7 @@ require_relative 'codec'
|
|
|
28
28
|
|
|
29
29
|
# GLogin main module.
|
|
30
30
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
31
|
-
# Copyright:: Copyright (c) 2017-
|
|
31
|
+
# Copyright:: Copyright (c) 2017-2023 Yegor Bugayenko
|
|
32
32
|
# License:: MIT
|
|
33
33
|
module GLogin
|
|
34
34
|
# Split symbol inside the cookie text
|
data/lib/glogin/version.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2017-
|
|
4
|
+
# Copyright (c) 2017-2023 Yegor Bugayenko
|
|
5
5
|
#
|
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
|
|
24
24
|
# GLogin main module.
|
|
25
25
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
26
|
-
# Copyright:: Copyright (c) 2017-
|
|
26
|
+
# Copyright:: Copyright (c) 2017-2023 Yegor Bugayenko
|
|
27
27
|
# License:: MIT
|
|
28
28
|
module GLogin
|
|
29
|
-
VERSION = '0.
|
|
29
|
+
VERSION = '0.11.0'
|
|
30
30
|
end
|
data/lib/glogin.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2017-
|
|
4
|
+
# Copyright (c) 2017-2023 Yegor Bugayenko
|
|
5
5
|
#
|
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -28,7 +28,7 @@ require_relative 'glogin/cookie'
|
|
|
28
28
|
|
|
29
29
|
# GLogin main module.
|
|
30
30
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
31
|
-
# Copyright:: Copyright (c) 2017-
|
|
31
|
+
# Copyright:: Copyright (c) 2017-2023 Yegor Bugayenko
|
|
32
32
|
# License:: MIT
|
|
33
33
|
module GLogin
|
|
34
34
|
end
|
data/test/glogin/test_auth.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2017-
|
|
4
|
+
# Copyright (c) 2017-2023 Yegor Bugayenko
|
|
5
5
|
#
|
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
# of this software and associated documentation files (the 'Software'), to deal
|
data/test/glogin/test_codec.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2017-
|
|
4
|
+
# Copyright (c) 2017-2023 Yegor Bugayenko
|
|
5
5
|
#
|
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -60,6 +60,12 @@ class TestCodec < Minitest::Test
|
|
|
60
60
|
end
|
|
61
61
|
end
|
|
62
62
|
|
|
63
|
+
def test_decrypts_broken_text_with_empty_key
|
|
64
|
+
assert_raises GLogin::Codec::DecodingError do
|
|
65
|
+
GLogin::Codec.new('key').decrypt('')
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
63
69
|
def test_encrypts_and_decrypts_with_empty_key
|
|
64
70
|
crypt = GLogin::Codec.new
|
|
65
71
|
text = 'This is the text, дорогой друг!'
|
data/test/glogin/test_cookie.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2017-
|
|
4
|
+
# Copyright (c) 2017-2023 Yegor Bugayenko
|
|
5
5
|
#
|
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
# of this software and associated documentation files (the 'Software'), to deal
|
data/test/test__helper.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2017-
|
|
4
|
+
# Copyright (c) 2017-2023 Yegor Bugayenko
|
|
5
5
|
#
|
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -25,10 +25,6 @@ $stdout.sync = true
|
|
|
25
25
|
|
|
26
26
|
require 'simplecov'
|
|
27
27
|
SimpleCov.start
|
|
28
|
-
if ENV['CI'] == 'true'
|
|
29
|
-
require 'codecov'
|
|
30
|
-
SimpleCov.formatter = SimpleCov::Formatter::Codecov
|
|
31
|
-
end
|
|
32
28
|
|
|
33
29
|
require 'minitest/autorun'
|
|
34
30
|
require_relative '../lib/glogin'
|
data/test/test_glogin.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
#
|
|
4
|
-
# Copyright (c) 2017-
|
|
4
|
+
# Copyright (c) 2017-2023 Yegor Bugayenko
|
|
5
5
|
#
|
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -26,7 +26,7 @@ require_relative '../lib/glogin'
|
|
|
26
26
|
|
|
27
27
|
# GLogin main module test.
|
|
28
28
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
29
|
-
# Copyright:: Copyright (c) 2017-
|
|
29
|
+
# Copyright:: Copyright (c) 2017-2023 Yegor Bugayenko
|
|
30
30
|
# License:: MIT
|
|
31
31
|
class TestGLogin < Minitest::Test
|
|
32
32
|
def test_basic
|
metadata
CHANGED
|
@@ -1,141 +1,43 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: glogin
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.11.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yegor Bugayenko
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-05-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base58
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- -
|
|
17
|
+
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.2
|
|
19
|
+
version: '0.2'
|
|
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: 0.2
|
|
26
|
+
version: '0.2'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: openssl
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- -
|
|
31
|
+
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
34
|
-
type: :
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - '='
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: 0.6.0
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: minitest
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - '='
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: 5.16.1
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - '='
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: 5.16.1
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: rake
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - '='
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: 13.0.6
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - '='
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: 13.0.6
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: rdoc
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - '='
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: 6.4.0
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - '='
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: 6.4.0
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: rspec-rails
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - '='
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: 5.1.2
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - '='
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: 5.1.2
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: rubocop
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
100
|
-
requirements:
|
|
101
|
-
- - '='
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: 1.31.1
|
|
104
|
-
type: :development
|
|
105
|
-
prerelease: false
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
requirements:
|
|
108
|
-
- - '='
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: 1.31.1
|
|
111
|
-
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: rubocop-rspec
|
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - '='
|
|
116
|
-
- !ruby/object:Gem::Version
|
|
117
|
-
version: 2.11.1
|
|
118
|
-
type: :development
|
|
119
|
-
prerelease: false
|
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
requirements:
|
|
122
|
-
- - '='
|
|
123
|
-
- !ruby/object:Gem::Version
|
|
124
|
-
version: 2.11.1
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: webmock
|
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
|
128
|
-
requirements:
|
|
129
|
-
- - '='
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: 3.14.0
|
|
132
|
-
type: :development
|
|
33
|
+
version: '3.1'
|
|
34
|
+
type: :runtime
|
|
133
35
|
prerelease: false
|
|
134
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
37
|
requirements:
|
|
136
|
-
- -
|
|
38
|
+
- - "~>"
|
|
137
39
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: 3.
|
|
40
|
+
version: '3.1'
|
|
139
41
|
description: Enables login/logout functionality for a Ruby web app
|
|
140
42
|
email: yegor256@gmail.com
|
|
141
43
|
executables: []
|
|
@@ -147,7 +49,9 @@ files:
|
|
|
147
49
|
- ".0pdd.yml"
|
|
148
50
|
- ".gitattributes"
|
|
149
51
|
- ".github/workflows/codecov.yml"
|
|
52
|
+
- ".github/workflows/pdd.yml"
|
|
150
53
|
- ".github/workflows/rake.yml"
|
|
54
|
+
- ".github/workflows/xcop.yml"
|
|
151
55
|
- ".gitignore"
|
|
152
56
|
- ".pdd"
|
|
153
57
|
- ".rubocop.yml"
|
|
@@ -191,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
191
95
|
- !ruby/object:Gem::Version
|
|
192
96
|
version: '0'
|
|
193
97
|
requirements: []
|
|
194
|
-
rubygems_version: 3.
|
|
98
|
+
rubygems_version: 3.2.15
|
|
195
99
|
signing_key:
|
|
196
100
|
specification_version: 4
|
|
197
101
|
summary: Login/logout via GitHub OAuth for your web app
|