Skip to content

Bump multi_json from 1.20.1 to 1.21.1#213

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/bundler/multi_json-1.21.1
Open

Bump multi_json from 1.20.1 to 1.21.1#213
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/bundler/multi_json-1.21.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github May 4, 2026

Copy link
Copy Markdown
Contributor

Bumps multi_json from 1.20.1 to 1.21.1.

Release notes

Sourced from multi_json's releases.

v1.21.1

Full Changelog: sferik/multi_json@v1.21.0...v1.21.1

v1.21.0

Full Changelog: sferik/multi_json@v1.20.1...v1.21.0

Changelog

Sourced from multi_json's changelog.

[1.21.1]

Fixed

  • Fix MultiJson.method(:load) resolving to Kernel#load instead of the legacy-constant forwarder (#66). The 1.21.0 shim forwarded calls via method_missing, but Module#method doesn't consult method_missing, so libraries that capture decoders as Method objects (Sawyer, used by Octokit and Danger) crashed with LoadError when the captured method tried to interpret the JSON string as a file path. Define an explicit singleton method on MultiJson for every public method MultiJSON exposes so Module#method finds the forwarder directly.

[1.21.0]

Every deprecation introduced here will be removed in 2.0.0. Upgrade to 1.21.0, run your app or test suite with ruby -W:deprecated to surface the warnings, migrate each call site to the new canonical names, then pin ~> 2.0 once 2.0.0 ships.

Added

  • Rename the MultiJson constant to MultiJSON (all-caps) to match the project name, Ruby stdlib JSON, and the all-caps treatment of the JSON acronym across other languages. The legacy MultiJson constant continues to work as a thin delegator via method_missing and const_missing, so MultiJson.parse(...), MultiJson::Adapters::Oj, and rescue MultiJson::ParseError all resolve to their MultiJSON counterparts.
  • Add MultiJSON.parse and MultiJSON.generate as the new canonical names for the primary parse and generate methods, matching Ruby stdlib JSON.parse / JSON.generate, the JSON spec (RFC 8259), and sister library MultiXml.
  • Add MultiJSON.parse_options / MultiJSON.parse_options= and MultiJSON.generate_options / MultiJSON.generate_options= as the new canonical option setters.
  • Accept symbolize_names: as the canonical option name matching Ruby stdlib's JSON.parse(str, symbolize_names: true). The deprecated symbolize_keys: option continues to work and emits a one-time warning when passed at any of the three option layers (call-site, MultiJSON.parse_options=, adapter defaults :load).
  • Replace the two-adapter Benchmark.ips smoke test in benchmark.rb with a full adapter comparison matrix (parse + dump across nine workloads) and promote it to a top-level rake benchmark task. A new --verify-preference flag asserts that MultiJSON::AdapterSelector::ADAPTERS matches the observed throughput ranking, with a 10% tolerance for adjacent ties; CI runs it on every push so the ordering can't silently drift.

Changed

  • Reorder MultiJSON::AdapterSelector::ADAPTERS so the JSON gem is tried before fast_jsonparser/oj/yajl on MRI and TruffleRuby, matching the throughput ranking in the bundled benchmark suite on Ruby 3.4+. The hash is split per platform so JRuby still prefers jr_jackson. Affects auto-detection only when more than one of those adapters is loaded; explicitly selecting an adapter with MultiJSON.use(:adapter) is unchanged.

Deprecated

  • The MultiJson constant in favor of MultiJSON.
  • MultiJSON.load in favor of MultiJSON.parse.
  • MultiJSON.dump in favor of MultiJSON.generate.
  • MultiJSON.load_options / MultiJSON.load_options= in favor of MultiJSON.parse_options / MultiJSON.parse_options=.
  • MultiJSON.dump_options / MultiJSON.dump_options= in favor of MultiJSON.generate_options / MultiJSON.generate_options=.
  • The :symbolize_keys parse option in favor of :symbolize_names.

All deprecated names continue to work and emit a one-time warning on first use. Warnings are tagged with Ruby's :deprecated category, so noisy apps can silence the whole set with Warning[:deprecated] = false and deprecation-aware tooling (ruby -W:deprecated, CI linters) picks them up. The old names will be removed in 2.0.

Commits
  • 9ae5a42 Version 1.21.1
  • f3604c5 Fix MultiJson.method(:load) resolving to Kernel#load
  • 8339719 Version 1.21.0
  • 2217775 Tag deprecation warnings as :deprecated and document the bridge in the README
  • 6f6b756 Reorder ADAPTERS by benchmark throughput and verify the order in CI
  • 72d3ea1 Add adapter benchmark suite as a rake task
  • 112d0af Mirror stdlib JSON in the public API: MultiJSON, parse/generate, symbolize_names
  • ddc802a Rewrite CHANGELOG in Keep a Changelog format
  • d4c6fe1 Whitelist gemspec files instead of globbing all .md files
  • c50c595 Fix flaky symbol-count tests that fail when GC reclaims symbols
  • See full diff in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [multi_json](https://github.com/sferik/multi_json) from 1.20.1 to 1.21.1.
- [Release notes](https://github.com/sferik/multi_json/releases)
- [Changelog](https://github.com/sferik/multi_json/blob/main/CHANGELOG.md)
- [Commits](sferik/multi_json@v1.20.1...v1.21.1)

---
updated-dependencies:
- dependency-name: multi_json
  dependency-version: 1.21.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file ruby Pull requests that update ruby code labels May 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file ruby Pull requests that update ruby code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants