Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Fix #10745] Fix an error when using old JSON gem
Fixes #10745. This PR fixes the following incompatible API error when using JSON 2.2 or lower. ```console % bunlde exec rspec ./spec/rubocop/result_cache_spec.rb:45 Run options: include {:focus=>true, :locations=>{"./spec/rubocop/result_cache_spec.rb"=>[45]}} Randomized with seed 40926 FF Failures: 1) RuboCop::ResultCache cached result that was saved with no command line option when no option is given is valid and can be loaded Failure/Error: deserialize_offenses(JSON.parse(text)) ArgumentError: wrong number of arguments (given 2, expected 1) Shared Example Group: "valid" called from ./spec/rubocop/result_cache_spec.rb:121 # ./lib/rubocop/cached_data.rb:14:in `from_json' # ./lib/rubocop/result_cache.rb:119:in `load' # ./spec/rubocop/result_cache_spec.rb:45:in `block (4 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `block (4 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `chdir' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `block (3 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:7:in `block (2 levels) in <top (required)>' 2) RuboCop::ResultCache cached result that was saved with no command line option when --format is given is valid and can be loaded Failure/Error: deserialize_offenses(JSON.parse(text)) ArgumentError: wrong number of arguments (given 2, expected 1) Shared Example Group: "valid" called from ./spec/rubocop/result_cache_spec.rb:242 # ./lib/rubocop/cached_data.rb:14:in `from_json' # ./lib/rubocop/result_cache.rb:119:in `load' # ./spec/rubocop/result_cache_spec.rb:45:in `block (4 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `block (4 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `chdir' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `block (3 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:7:in `block (2 levels) in <top (required)>' Finished in 0.2064 seconds (files took 1.04 seconds to load) 2 examples, 2 failures ``` It resolves the error by requiring JSON 2.3 or higher. NOTE: It's been a few years since JSON 2.3 was released. It's maybe widespread to some extent, so it's not expected to have a big impact. https://rubygems.org/gems/json/versions/2.3.0
- Loading branch information