Skip to content

Bug/parsed return type #650

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
May 22, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 1 addition & 9 deletions .github/workflows/ancient.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: MRI 2.3, 2.4, 2.5 (EOL)
name: MRI 2.4, 2.5 (EOL)

permissions:
contents: read
Expand Down Expand Up @@ -34,14 +34,6 @@ jobs:
fail-fast: false
matrix:
include:
# Ruby 2.3
- ruby: "ruby-2.3"
appraisal: "ruby-2-3"
exec_cmd: "rake test"
gemfile: "Appraisal.root"
rubygems: "3.3.27"
bundler: "2.3.27"

# Ruby 2.4
- ruby: "ruby-2.4"
appraisal: "ruby-2-4"
Expand Down
106 changes: 106 additions & 0 deletions .github/workflows/caboose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# THE CABOOSE IS AN ABSOLUTE WAGON
name: MRI 2.3 X Hashie WAGON (EOL)

permissions:
contents: read

on:
push:
branches:
- 'main'
- '*-stable'
tags:
- '!*' # Do not execute on tags
pull_request:
branches:
- '*'
# Allow manually triggering the workflow.
workflow_dispatch:

# Cancels all previous workflow runs for the same branch that have not yet completed.
concurrency:
# The concurrency group contains the workflow name and the branch name.
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true

jobs:
test:
name: Specs ${{ matrix.ruby }} ${{ matrix.appraisal }}${{ matrix.name_extra || '' }}
if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
runs-on: ubuntu-22.04
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}.gemfile
strategy:
fail-fast: false
matrix:
include:
# Ruby 2.3
- ruby: "ruby-2.3"
appraisal: "ruby-2-3-hashie_v0"
exec_cmd: "rake test"
gemfile: "Appraisal.root"
rubygems: "3.3.27"
bundler: "2.3.27"

# Ruby 2.3
- ruby: "ruby-2.3"
appraisal: "ruby-2-3-hashie_v1"
exec_cmd: "rake test"
gemfile: "Appraisal.root"
rubygems: "3.3.27"
bundler: "2.3.27"

# Ruby 2.3
- ruby: "ruby-2.3"
appraisal: "ruby-2-3-hashie_v2"
exec_cmd: "rake test"
gemfile: "Appraisal.root"
rubygems: "3.3.27"
bundler: "2.3.27"

# Ruby 2.3
- ruby: "ruby-2.3"
appraisal: "ruby-2-3-hashie_v3"
exec_cmd: "rake test"
gemfile: "Appraisal.root"
rubygems: "3.3.27"
bundler: "2.3.27"

# Ruby 2.3
- ruby: "ruby-2.3"
appraisal: "ruby-2-3-hashie_v4"
exec_cmd: "rake test"
gemfile: "Appraisal.root"
rubygems: "3.3.27"
bundler: "2.3.27"

# Ruby 2.3
- ruby: "ruby-2.3"
appraisal: "ruby-2-3-hashie_v5"
exec_cmd: "rake test"
gemfile: "Appraisal.root"
rubygems: "3.3.27"
bundler: "2.3.27"

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Ruby & RubyGems
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
rubygems: ${{ matrix.rubygems }}
bundler: ${{ matrix.bundler }}
bundler-cache: false

# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
# We need to do this first to get appraisal installed.
# NOTE: This does not use the primary Gemfile at all.
- name: Install Root Appraisal
run: bundle > /dev/null 2>&1
- name: Appraisal for ${{ matrix.appraisal }}
run: bundle exec appraisal ${{ matrix.appraisal }} bundle > /dev/null 2>&1
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
6 changes: 5 additions & 1 deletion .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,4 +79,8 @@ Style/TrailingCommaInHashLiteral:
EnforcedStyleForMultiline: comma

Gemspec/DependencyVersion:
Enabled: false
Enabled: false

Lint/LiteralInInterpolation:
Exclude:
- 'spec/**/*.rb'
42 changes: 19 additions & 23 deletions .rubocop_gradual.lock
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
"lib/oauth2.rb:65351186": [
[38, 11, 7, "ThreadSafety/ClassInstanceVariable: Avoid class instance variables.", 651502127]
],
"lib/oauth2/access_token.rb:3471244990": [
[49, 13, 5, "Style/IdenticalConditionalBranches: Move `t_key` out of the conditional.", 183811513],
[55, 13, 5, "Style/IdenticalConditionalBranches: Move `t_key` out of the conditional.", 183811513]
"lib/oauth2/access_token.rb:558937598": [
[64, 13, 5, "Style/IdenticalConditionalBranches: Move `t_key` out of the conditional.", 183811513],
[70, 13, 5, "Style/IdenticalConditionalBranches: Move `t_key` out of the conditional.", 183811513]
],
"lib/oauth2/authenticator.rb:63639854": [
[42, 5, 113, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 734523108]
Expand All @@ -18,21 +18,17 @@
[9, 9, 25, "ThreadSafety/ClassInstanceVariable: Avoid class instance variables.", 2012823020],
[13, 9, 25, "ThreadSafety/ClassInstanceVariable: Avoid class instance variables.", 2012823020]
],
"lib/oauth2/response.rb:4048171841": [
"lib/oauth2/response.rb:2808363818": [
[35, 5, 204, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 996912427]
],
"oauth2.gemspec:3929706977": [
"oauth2.gemspec:1301437182": [
[5, 23, 12, "Gemspec/RubyVersionGlobalsUsage: Do not use `RUBY_VERSION` in gemspec file.", 31296028]
],
"spec/oauth2/access_token_spec.rb:443932125": [
"spec/oauth2/access_token_spec.rb:1202129469": [
[3, 1, 34, "RSpec/SpecFilePathFormat: Spec path should end with `o_auth2/access_token*_spec.rb`.", 1972107547],
[392, 142, 40, "Lint/LiteralInInterpolation: Literal interpolation detected.", 4210228387],
[400, 142, 40, "Lint/LiteralInInterpolation: Literal interpolation detected.", 4210228387],
[606, 142, 20, "Lint/LiteralInInterpolation: Literal interpolation detected.", 304063511],
[632, 142, 20, "Lint/LiteralInInterpolation: Literal interpolation detected.", 304063511],
[781, 13, 25, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 770233088],
[851, 9, 101, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 3022740639],
[855, 9, 79, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 2507338967]
[789, 13, 25, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 770233088],
[859, 9, 101, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 3022740639],
[863, 9, 79, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 2507338967]
],
"spec/oauth2/authenticator_spec.rb:853320290": [
[3, 1, 36, "RSpec/SpecFilePathFormat: Spec path should end with `o_auth2/authenticator*_spec.rb`.", 819808017],
Expand All @@ -41,23 +37,23 @@
[69, 15, 38, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 1480816240],
[79, 13, 23, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 2314399065]
],
"spec/oauth2/client_spec.rb:2985507284": [
"spec/oauth2/client_spec.rb:1455422151": [
[6, 1, 29, "RSpec/SpecFilePathFormat: Spec path should end with `o_auth2/client*_spec.rb`.", 439549885],
[175, 7, 492, "RSpec/NoExpectationExample: No expectation found in this example.", 1272021224],
[194, 7, 592, "RSpec/NoExpectationExample: No expectation found in this example.", 3428877205],
[207, 15, 20, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 2320605227],
[222, 15, 20, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 1276531672],
[237, 15, 43, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 1383956904],
[252, 15, 43, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 3376202107],
[830, 5, 360, "RSpec/NoExpectationExample: No expectation found in this example.", 536201463],
[839, 5, 461, "RSpec/NoExpectationExample: No expectation found in this example.", 3392600621],
[850, 5, 340, "RSpec/NoExpectationExample: No expectation found in this example.", 244592251],
[978, 11, 99, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 3084776886],
[982, 11, 82, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 1524553529],
[990, 7, 89, "RSpec/NoExpectationExample: No expectation found in this example.", 4609419],
[1078, 11, 99, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 3084776886],
[1082, 11, 82, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 1524553529],
[1162, 17, 12, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 664794325]
[827, 5, 360, "RSpec/NoExpectationExample: No expectation found in this example.", 536201463],
[836, 5, 461, "RSpec/NoExpectationExample: No expectation found in this example.", 3392600621],
[847, 5, 340, "RSpec/NoExpectationExample: No expectation found in this example.", 244592251],
[975, 11, 99, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 3084776886],
[979, 11, 82, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 1524553529],
[987, 7, 89, "RSpec/NoExpectationExample: No expectation found in this example.", 4609419],
[1075, 11, 99, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 3084776886],
[1079, 11, 82, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 1524553529],
[1159, 17, 12, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 664794325]
],
"spec/oauth2/error_spec.rb:1692696277": [
[23, 1, 28, "RSpec/SpecFilePathFormat: Spec path should end with `o_auth2/error*_spec.rb`.", 3385870076],
Expand Down
2 changes: 1 addition & 1 deletion .rubocop_rspec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ RSpec/DescribeClass:
- 'spec/examples/*'

RSpec/MultipleMemoizedHelpers:
Enabled: false
Enabled: false
52 changes: 51 additions & 1 deletion Appraisals
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ appraise "current" do
remove_gem "appraisal" # only present because it must be in the gemfile because we target a git branch
end

appraise "ruby-2-3" do
appraise "ruby-2-3-hashie_v0" do
eval_gemfile "modular/faraday_v0.gemfile"
eval_gemfile "modular/hashie_v0.gemfile"
eval_gemfile "modular/jwt_v1.gemfile"
Expand All @@ -45,6 +45,56 @@ appraise "ruby-2-3" do
remove_gem "appraisal" # only present because it must be in the gemfile because we target a git branch
end

appraise "ruby-2-3-hashie_v1" do
eval_gemfile "modular/faraday_v0.gemfile"
eval_gemfile "modular/hashie_v1.gemfile"
eval_gemfile "modular/jwt_v1.gemfile"
eval_gemfile "modular/logger_v1_2.gemfile"
eval_gemfile "modular/multi_xml_v0_5.gemfile"
eval_gemfile "modular/rack_v1_2.gemfile"
remove_gem "appraisal" # only present because it must be in the gemfile because we target a git branch
end

appraise "ruby-2-3-hashie_v2" do
eval_gemfile "modular/faraday_v0.gemfile"
eval_gemfile "modular/hashie_v2.gemfile"
eval_gemfile "modular/jwt_v1.gemfile"
eval_gemfile "modular/logger_v1_2.gemfile"
eval_gemfile "modular/multi_xml_v0_5.gemfile"
eval_gemfile "modular/rack_v1_2.gemfile"
remove_gem "appraisal" # only present because it must be in the gemfile because we target a git branch
end

appraise "ruby-2-3-hashie_v3" do
eval_gemfile "modular/faraday_v0.gemfile"
eval_gemfile "modular/hashie_v3.gemfile"
eval_gemfile "modular/jwt_v1.gemfile"
eval_gemfile "modular/logger_v1_2.gemfile"
eval_gemfile "modular/multi_xml_v0_5.gemfile"
eval_gemfile "modular/rack_v1_2.gemfile"
remove_gem "appraisal" # only present because it must be in the gemfile because we target a git branch
end

appraise "ruby-2-3-hashie_v4" do
eval_gemfile "modular/faraday_v0.gemfile"
eval_gemfile "modular/hashie_v4.gemfile"
eval_gemfile "modular/jwt_v1.gemfile"
eval_gemfile "modular/logger_v1_2.gemfile"
eval_gemfile "modular/multi_xml_v0_5.gemfile"
eval_gemfile "modular/rack_v1_2.gemfile"
remove_gem "appraisal" # only present because it must be in the gemfile because we target a git branch
end

appraise "ruby-2-3-hashie_v5" do
eval_gemfile "modular/faraday_v0.gemfile"
eval_gemfile "modular/hashie_v5.gemfile"
eval_gemfile "modular/jwt_v1.gemfile"
eval_gemfile "modular/logger_v1_2.gemfile"
eval_gemfile "modular/multi_xml_v0_5.gemfile"
eval_gemfile "modular/rack_v1_2.gemfile"
remove_gem "appraisal" # only present because it must be in the gemfile because we target a git branch
end

appraise "ruby-2-4" do
eval_gemfile "modular/faraday_v1.gemfile"
eval_gemfile "modular/hashie_v1.gemfile"
Expand Down
22 changes: 12 additions & 10 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ PATH
logger (~> 1.2)
multi_xml (~> 0.5)
rack (>= 1.2, < 4)
snaky_hash (~> 2.0)
snaky_hash (~> 2.0, >= 2.0.2)
version_gem (>= 1.1.8, < 3)

GEM
Expand Down Expand Up @@ -83,6 +83,7 @@ GEM
dry-inflector (~> 1.0)
dry-logic (~> 1.4)
zeitwerk (~> 2.6)
erb (5.0.1)
faraday (2.13.1)
faraday-net_http (>= 2.0, < 3.5)
json
Expand All @@ -92,7 +93,7 @@ GEM
gem_bench (2.0.5)
bundler (>= 1.14)
version_gem (~> 1.1, >= 1.1.4)
hashie (0.4.0)
hashie (5.0.0)
io-console (0.8.0)
irb (1.15.2)
pp (>= 0.6.0)
Expand All @@ -101,7 +102,7 @@ GEM
json (2.12.0)
jwt (3.0.0.beta1)
base64
kettle-soup-cover (1.0.6)
kettle-soup-cover (1.0.9)
simplecov (~> 0.22)
simplecov-cobertura (~> 2.1)
simplecov-console (~> 0.9, >= 0.9.1)
Expand Down Expand Up @@ -140,10 +141,11 @@ GEM
stringio
public_suffix (6.0.2)
racc (1.8.1)
rack (3.1.14)
rack (3.1.15)
rainbow (3.1.1)
rake (13.2.1)
rdoc (6.13.1)
rdoc (6.14.0)
erb
psych (>= 4.0.0)
reek (6.5.0)
dry-schema (~> 1.13)
Expand Down Expand Up @@ -175,7 +177,7 @@ GEM
ruby_version (~> 1.0)
rspec-stubbed_env (1.0.2)
rspec-support (3.13.3)
rubocop (1.75.6)
rubocop (1.75.7)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
Expand Down Expand Up @@ -249,9 +251,9 @@ GEM
simplecov-rcov (0.3.7)
simplecov (>= 0.4.1)
simplecov_json_formatter (0.1.4)
snaky_hash (2.0.1)
hashie
version_gem (~> 1.1, >= 1.1.1)
snaky_hash (2.0.2)
hashie (>= 0.1.0, < 6)
version_gem (>= 1.1.8, < 3)
standard (1.50.0)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.0)
Expand Down Expand Up @@ -284,7 +286,7 @@ GEM
yard (0.9.37)
yard-relative_markdown_links (0.5.0)
nokogiri (>= 1.14.3, < 2)
zeitwerk (2.7.2)
zeitwerk (2.7.3)

PLATFORMS
x86_64-darwin-21
Expand Down
Loading