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
Modernize argument delegation for Ruby 3+ compatibility
- Replace args.extract_options! with explicit **kwargs parameters
- Update method signatures to use keyword arguments properly
- Add deep_transform_values for handling nested keyword arguments
- Move inherited methods to private sections where appropriate
- Update tests to use **kwargs syntax
- Remove unused active_support/core_ext/array/extract_options require
This modernization improves code clarity and follows Ruby 3+ best practices
while maintaining full backward compatibility.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,6 +24,8 @@
24
24
*[#2612](https://github.com/ruby-grape/grape/pull/2612): Avoid multiple mount pollution - [@alexanderadam](https://github.com/alexanderadam).
25
25
*[#2617](https://github.com/ruby-grape/grape/pull/2617): Migrate from ActiveSupport::Configurable to Dry::Configurable - [@ericproulx](https://github.com/ericproulx).
26
26
* Your contribution here.
27
+
*[#2618](https://github.com/ruby-grape/grape/pull/2618): Modernize argument delegation for Ruby 3+ compatibility - [@ericproulx](https://github.com/ericproulx).
Copy file name to clipboardExpand all lines: UPGRADING.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,6 +3,18 @@ Upgrading Grape
3
3
4
4
### Upgrading to >= 3.0.0
5
5
6
+
#### Ruby 3+ Argument Delegation Modernization
7
+
8
+
Grape has been modernized to use Ruby 3+'s preferred argument delegation patterns. This change replaces `args.extract_options!` with explicit `**kwargs` parameters throughout the codebase.
9
+
10
+
- All DSL methods now use explicit keyword arguments (`**kwargs`) instead of extracting options from mixed argument lists
11
+
- Method signatures are now more explicit and follow Ruby 3+ best practices
12
+
- The `active_support/core_ext/array/extract_options` dependency has been removed
13
+
14
+
This is a modernization effort that improves code quality while maintaining full backward compatibility.
15
+
16
+
See [#2618](https://github.com/ruby-grape/grape/pull/2618) for more information.
17
+
6
18
#### Configuration API Migration from ActiveSupport::Configurable to Dry::Configurable
7
19
8
20
Grape has migrated from `ActiveSupport::Configurable` to `Dry::Configurable` for its configuration system since its [deprecated](https://github.com/rails/rails/blob/1cdd190a25e483b65f1f25bbd0f13a25d696b461/activesupport/lib/active_support/configurable.rb#L3-L7)
0 commit comments