Skip to content

Commit 3b92cf8

Browse files
committed
✨ Support Ruby 2.2 & 2.3
1 parent 1c1a606 commit 3b92cf8

File tree

9 files changed

+24
-14
lines changed

9 files changed

+24
-14
lines changed

.github/workflows/ancient.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ jobs:
3535
gemfile:
3636
- ancient
3737
ruby:
38-
- "2.3"
39-
- "2.2"
38+
- "2.3.8"
39+
- "2.2.10"
4040
runs-on: ubuntu-20.04
4141
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
4242
steps:

.tool-versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ruby 2.6.10
1+
ruby 2.3.8

gemfiles/ancient.gemfile

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@ source "https://rubygems.org"
99
# Exceptions, if any, will be found in gemfiles/*
1010

1111
# Testing
12-
gem "rspec", "~> 3.12" # ruby *
13-
gem "rack-test", "~> 2.1" # ruby 2.0
14-
gem "rack", "< 3" # ruby < 2.4
15-
gem "json", "< 2.6" # ruby < 2.3
12+
gem "rack", "~> 2.1.4.3" # ruby 2.2.2
13+
gem "json", "~> 2.5.1" # ruby 2.0
1614

1715
# Debugging
1816
eval_gemfile "contexts/debug.gemfile"

gemfiles/contexts/debug.gemfile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1-
if ENV['CI'].nil? && ENV.fetch('DEBUG', 'false').casecmp?('true')
1+
# Ancient rubies do not have String#casecmp?
2+
debugging = ENV['CI'].nil? && ENV.fetch('DEBUG', 'false')
3+
4+
if debugging && debugging[/true/i]
25
gem "byebug"
36
end

gemfiles/contexts/testing.gemfile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
# Testing
2-
gem "rspec", "~> 3.12" # ruby *
3-
gem "rack-test", "~> 2.1" # ruby 2.0
42
gem "rack", "~> 3.0", ">= 3.0.8" # ruby 2.4
53
gem "rack-session", "~> 2.0" # ruby 2.4
64
gem "json", "~> 2.6", ">= 2.6.3" # ruby 2.3

lib/omniauth/strategies/jwt.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def decoded
5353
{
5454
algorithms: default_algos,
5555
jwks: options.jwks_loader
56-
}.compact
56+
}.delete_if {|_, v| v.nil? }
5757
)
5858
)[0]
5959
rescue Exception => e

omniauth-jwt2.gemspec

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ Gem::Specification.new do |spec|
2020
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
2121
spec.require_paths = ["lib"]
2222

23+
# TODO: Since this gem supports Ruby >= 2.2 we need to ensure no gems are
24+
# added here that require a newer version. Once this gem progresses to
25+
# only support non-EOL Rubies, all dependencies can be listed in this
26+
# gemspec, and the gemfiles/* pattern can be dispensed with.
2327
spec.add_dependency "jwt", "~> 2.2", ">= 2.2.1" # ruby 2.1
2428
spec.add_dependency "omniauth", ">= 1.1" # ruby 2.2
2529

@@ -30,4 +34,9 @@ Gem::Specification.new do |spec|
3034
# Hot reload
3135
spec.add_development_dependency "guard" # ruby 1.9.3
3236
spec.add_development_dependency "guard-rspec" # ruby *
37+
38+
# Testing
39+
spec.add_development_dependency "rspec", "~> 3.12" # ruby *
40+
spec.add_development_dependency "rack-test", "~> 2.1" # ruby 2.0
41+
spec.add_development_dependency "rspec-pending_for", "~> 0.1" # ruby *
3342
end

spec/lib/omniauth/strategies/jwt_spec.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,11 +123,12 @@
123123
'ES512' => 'secp521r1'
124124
}.freeze
125125

126-
{
126+
algos = {
127127
OpenSSL::PKey::RSA => %w[RS256 RS384 RS512],
128-
OpenSSL::PKey::EC => %w[ES256 ES384 ES512],
129128
String => %w[HS256 HS384 HS512]
130-
}.each do |private_key_class, algorithms|
129+
}
130+
algos.merge!(OpenSSL::PKey::EC => %w[ES256 ES384 ES512]) unless ['2.2.10', '2.3.8'].include?(RubyVersion.to_s)
131+
algos.each do |private_key_class, algorithms|
131132
algorithms.each do |algorithm|
132133
context "when the #{algorithm} algorithm is used" do
133134
let(:algorithm) { algorithm }

spec/spec_helper.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
require 'securerandom'
33

44
# 3rd party gems
5+
require 'rspec/pending_for'
56
begin
67
require 'rack/session'
78
rescue LoadError

0 commit comments

Comments
 (0)