You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Detect the MultiXML constant to avoid the multi_xml deprecation
multi_xml 0.9.0 deprecated the `MultiXml` constant in favor of `MultiXML`
(removed in v1.0); the legacy constant warns on access/use. Grape detected
the backend via `::MultiXml` and called `Grape::Xml.parse`, so users on
multi_xml >= 0.9 would hit the deprecation.
Detect `::MultiXML` first, falling back to the legacy `::MultiXml` constant
and then `ActiveSupport::XmlMini`. Unlike multi_json, no facade is needed:
`parse` is canonical (not renamed) and Grape only calls `parse`, so a direct
alias suffices on every backend.
Cover both multi_xml lines in CI: pin gemfiles/multi_xml.gemfile to >= 0.9
and add gemfiles/multi_xml_0_8.gemfile (< 0.9), each running the
spec/integration/multi_xml suite. The integration spec now drives a real
Grape API that parses an XML request body through Grape::Xml.parse.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
*[#2751](https://github.com/ruby-grape/grape/pull/2751): Fix structured error messages leaking the raw i18n key for an undefined optional step such as `summary` (closes #2748) - [@ericproulx](https://github.com/ericproulx).
77
77
*[#2759](https://github.com/ruby-grape/grape/pull/2759): Use `create_additions: false` in `Grape::Json.load` to prevent object instantiation via the `json_class` key when using the stdlib JSON fallback - [@dblock](https://github.com/dblock).
78
+
*[#2765](https://github.com/ruby-grape/grape/pull/2765): Detect the `MultiXML` constant to avoid the multi_xml 0.9 `MultiXml` deprecation - [@ericproulx](https://github.com/ericproulx).
0 commit comments