action_args 2.3.2 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 234e515eeed335a94bc99891422b4e0374227c9d18b0cd5dcab10dc5c86a8ee2
4
- data.tar.gz: bab6cf038df32ccc98d4921bda15b4815f039660219c8430fbf5a5f293be1cd9
3
+ metadata.gz: 4b4a8d847e94c900a71e3ce0c0bc9e5fb1f33c195a2b30222fad4ca5f4574d73
4
+ data.tar.gz: d557de21bbcb6eb76f88c4d4bc70fb899f58449192e9125f7c8548e2f8d17ab8
5
5
  SHA512:
6
- metadata.gz: 143f8be57fe2a24ff9ad59abc21433a3248cc64536fbdd4b2b72dbf3fcb7df4f86be0655f543e696db4b909a789e189ed7b3377b27ac5c8a9082d9d4c3546558
7
- data.tar.gz: 8627eb5561b52f110be725779eea1382fdd9453755d7cae01ba2f7fb4b87bcd77e0207466acc15b62c9ac4f323d6688dabce8a646dfe050924f75ae43d1709df
6
+ metadata.gz: 43ee46cb44156ad2cd9a47aab03e312b00058d2173c416e6f60152c3b423ddadfa92c0ebf41c4c22b17d6c0daac3e029a3042a1d3b5272fcf18a18a5a1e03d58
7
+ data.tar.gz: fea23dadb984ed9d43250ead66849f38ed45d5a5ca053b1c6513e7235d0dd7d961ba9d6b7773126af104d1ed93a31d99f01b168403dded36074fcea12b273e38
data/.travis.yml CHANGED
@@ -3,7 +3,7 @@ language: ruby
3
3
  sudo: false
4
4
 
5
5
  before_install:
6
- - "ruby -e 'exit RUBY_VERSION.to_f >= 2.3' && gem up --system || gem i rubygems-update -v '<3' && update_rubygems"
6
+ - "ruby -e 'exit RUBY_VERSION.to_f >= 2.3' && gem up --system || (gem i rubygems-update -v '<3' && update_rubygems)"
7
7
  - gem up bundler
8
8
 
9
9
  # rvm:
@@ -53,12 +53,12 @@ matrix:
53
53
  - rvm: ruby-head
54
54
  gemfile: gemfiles/rails_edge.gemfile
55
55
 
56
- - rvm: jruby-9.2.0.0
56
+ - rvm: jruby-9.2.6.0
57
57
  gemfile: gemfiles/rails_52.gemfile
58
58
  - rvm: rubinius-3
59
59
  gemfile: gemfiles/rails_52.gemfile
60
60
 
61
61
  allow_failures:
62
- - rvm: jruby-9.2.0.0
62
+ - rvm: jruby-9.2.6.0
63
63
  - rvm: rubinius-3
64
64
  - gemfile: gemfiles/rails_edge.gemfile
data/README.md CHANGED
@@ -1,12 +1,12 @@
1
- # ActionArgs
1
+ # action_args
2
2
  [![Build Status](https://travis-ci.org/asakusarb/action_args.svg?branch=master)](https://travis-ci.org/asakusarb/action_args)
3
3
 
4
- Controller action arguments parameterizer for Rails 4.1+
4
+ Controller action arguments parameterizer for Rails
5
5
 
6
6
 
7
- ## What is this?
7
+ ## What Is This?
8
8
 
9
- ActionArgs is a Rails plugin that extends your controller action methods to allow you to specify arguments of interest in the method definition for any action. - in short, Merbish.
9
+ action_args is a Rails plugin that extends your controller action methods to allow you to specify arguments of interest in the method definition for any action. - in short, this makes your Rails controller Merb-ish.
10
10
 
11
11
 
12
12
  ## The Controllers
@@ -14,24 +14,24 @@ ActionArgs is a Rails plugin that extends your controller action methods to allo
14
14
  Having the following controller code:
15
15
 
16
16
  ```ruby
17
- class HogeController < ApplicationController
18
- def fuga(piyo)
19
- render :text => piyo
17
+ class UsersController < ApplicationController
18
+ def show(id)
19
+ @user = User.find id
20
20
  end
21
21
  end
22
22
  ```
23
23
 
24
- Hitting "/hoge/fuga?piyo=foo" will call `fuga('foo')` and output 'foo'.
25
- This allows you to explicitly state which members of the `params` Hash are used in your controller actions.
24
+ When a request visits "/users/777", it calls `UsersController#show` passing 777 as the method parameter.
25
+ This allows you to explicitly state the most important API for the action -- which members of the `params` Hash are used in your controller actions -- in a perfectly natural Ruby way!
26
26
 
27
27
 
28
- ## Method parameter types in Ruby, and how ActionArgs handles parameters
28
+ ## Method Parameter Types in Ruby, and How action_args Handles Parameters
29
29
 
30
30
  ### Required Parameters (:req)
31
- Method parameters that you specify are required. If a key of the same name does not exist in the params Hash,
32
- ActionContrller::BadRequest is raised.
31
+ Method parameters that you specify are required. If a key of the same name does not exist in the params Hash, ActionContrller::BadRequest is raised.
32
+
33
+ In this `show` action, action_args will require that `id` parameter is provided.
33
34
 
34
- In this `show` action, ActionArgs will require that `id` parameter is provided.
35
35
  ```ruby
36
36
  class UsersController < ApplicationController
37
37
  # the `id` parameter is mandatory
@@ -55,7 +55,7 @@ end
55
55
 
56
56
  ### Keyword Argument (:key)
57
57
  If you think this Ruby 2.0 syntax reads better, you can choose this style for defining your action methods.
58
- This just works in the same way as :opt here.
58
+ This just works in the same way as `:opt` here.
59
59
 
60
60
  ```ruby
61
61
  class UsersController < ApplicationController
@@ -67,8 +67,8 @@ end
67
67
  ```
68
68
 
69
69
  ### Required Keyword Argument (:keyreq)
70
- :keyreq is the required version of :key, which was introduced in Ruby 2.1.
71
- You can use this syntax instead of :req.
70
+ `:keyreq` is the required version of `:key`, which was introduced in Ruby 2.1.
71
+ You can use this syntax instead of `:req`.
72
72
 
73
73
  ```ruby
74
74
  class CommentsController < ApplicationController
@@ -80,9 +80,9 @@ class CommentsController < ApplicationController
80
80
  end
81
81
  ```
82
82
 
83
- ### StrongParameters - permit
83
+ ## StrongParameters - permit
84
84
 
85
- ActionArgs plays very nice with Rails 4 StrongParameters.
85
+ action_args plays very nice with Rails 4 StrongParameters.
86
86
 
87
87
  1. Inline declaration
88
88
 
@@ -97,17 +97,17 @@ class UsersController < ApplicationController
97
97
  end
98
98
  ```
99
99
 
100
- 2. Declarative white-listing
100
+ 2. Declarative allow-listing
101
101
 
102
- ActionArgs also provides a declarative `permits` method for controller classes.
102
+ action_args also provides a declarative `permits` method for controller classes.
103
103
  Use this to keep your `permit` calls DRY in a comprehensible way.
104
104
 
105
105
  ```ruby
106
106
  class UsersController < ApplicationController
107
- # white-lists User model's attributes
107
+ # allow-lists User model's attributes
108
108
  permits :name, :age
109
109
 
110
- # the given `user` parameter would be automatically permitted by ActionArgs
110
+ # the given `user` parameter would be automatically permitted by action_args
111
111
  def create(user)
112
112
  @user = User.new(user)
113
113
  end
@@ -116,18 +116,19 @@ end
116
116
 
117
117
  By default, action_args deduces the target model name from the controller name.
118
118
  For example, the `permits` call in `UsersController` expects the model name to be `User`.
119
- If this is not the case, you can specify the :model_name option:
119
+ If this is not the case, you can specify the `:model_name` option:
120
120
 
121
121
  ```ruby
122
122
  class MembersController < ApplicationController
123
- # white-lists User model's attributes
123
+ # allow-lists User model's attributes
124
124
  permits :name, :age, model_name: 'User'
125
125
  end
126
126
  ```
127
127
 
128
+
128
129
  ## Filters
129
130
 
130
- ActionArgs works in filters, in the same way as it works in controller actions.
131
+ action_args works in filters, in the same way as it works in controller actions.
131
132
 
132
133
  ```ruby
133
134
  class UsersController < ApplicationController
@@ -136,17 +137,44 @@ class UsersController < ApplicationController
136
137
  def show
137
138
  end
138
139
 
139
- private
140
- # `params[:id]` will be dynamically assigned to the method parameter `id` here
141
- def set_user(id)
142
- @user = User.find(id)
143
- end
140
+ # `params[:id]` will be dynamically assigned to the method parameter `id` here
141
+ private def set_user(id)
142
+ @user = User.find(id)
143
+ end
144
144
  end
145
145
  ```
146
146
 
147
+
148
+ ## The *_params Convention
149
+
150
+ For those who are familiar with the Rails scaffold's default naming style, you can add `_params` suffix to any of the parameter names in the method signatures.
151
+ It just matches with the params name without `_params`.
152
+
153
+ For instance, these two actions both pass `params[:user]` as the method parameter.
154
+
155
+ ```ruby
156
+ # without _params
157
+ def create(user)
158
+ @user = User.new(user)
159
+ ...
160
+ end
161
+ ```
162
+
163
+ ```ruby
164
+ # with _params
165
+ def create(user_params)
166
+ @user = User.new(user_params)
167
+ ...
168
+ end
169
+ ```
170
+
171
+ This naming convention makes your controller code look much more compatible with the Rails' default scaffolded code,
172
+ and so it may be actually super easy for you to manually migrate from the legacy scaffold controller to the action_args style.
173
+
174
+
147
175
  ## The Scaffold Generator
148
176
 
149
- ActionArgs provides a custom scaffold controller generator that overwrites the default scaffold generator.
177
+ action_args provides a custom scaffold controller generator that overwrites the default scaffold generator.
150
178
  Thus, by hitting the scaffold generator command like this:
151
179
 
152
180
  ```sh
@@ -212,37 +240,33 @@ end
212
240
  ```
213
241
 
214
242
  You may notice that
215
- * There are no globalish `params` reference
243
+ * There are no global-ish `params` reference
216
244
  * It's quite easy to comprehend what's the actual input value for each action
217
- * You may write the unit test code as if the actions are just normal Ruby methods
245
+ * You may be able to write the unit test code without mocking `params` as if the actions are just normal Ruby methods
218
246
 
219
247
 
220
- ## Supported versions
248
+ ## Supported Versions
221
249
 
222
250
  * Ruby 2.0.0, 2.1.x, 2.2.x, 2.3.x, 2.4.x, 2.5.x, 2.6.x, 2.7.0 (trunk), JRuby, & Rubinius with 2.0+ mode
223
251
 
224
252
  * Rails 4.1.x, 4.2.x, 5.0, 5.1, 5.2, 6.0 (edge)
225
253
 
226
- Please use Version 1.5.4 for Rails 4.0.x.
254
+ For Rails 4.0.x, please use Version 1.5.4.
227
255
 
228
256
 
229
257
  ## Installation
230
258
 
231
- Put this line in your Gemfile:
259
+ Bundle the gem to your Rails app by putting this line in your Gemfile:
260
+
232
261
  ```ruby
233
262
  gem 'action_args'
234
263
  ```
235
264
 
236
- Then bundle:
237
- ```sh
238
- % bundle
239
- ```
240
-
241
265
  ## Notes
242
266
 
243
267
  ### Plain Old Action Methods
244
268
 
245
- Of course you still can use both Merbish style and plain old Rails style action methods even if this plugin is loaded. `params` parameter is still alive as well. That means, this plugin won't break any existing controller API.
269
+ Of course you still can use both Merb-like style and plain old Rails style action methods even if this plugin is loaded. `params` parameter is still alive as well. That means, this plugin won't break any existing controller API.
246
270
 
247
271
  ### Argument Naming Convention
248
272
 
@@ -264,7 +288,7 @@ class BooksController < ApplicationController
264
288
  end
265
289
  ```
266
290
 
267
- ### Default parameter values
291
+ ### Default Parameter Values
268
292
 
269
293
  You are of course able to specify default values for action parameters such as:
270
294
 
@@ -290,6 +314,7 @@ end
290
314
 
291
315
  This way, the `page` parameter will be defaulted to 1 as everyone might expect.
292
316
 
317
+
293
318
  ## Copyright
294
319
 
295
320
  Copyright (c) 2011- Asakusa.rb. See MIT-LICENSE for further details.
@@ -8,7 +8,7 @@ gem 'nokogiri', RUBY_VERSION < '2.1' ? '~> 1.6.0' : '>= 1.7'
8
8
  gemspec :path => '../'
9
9
 
10
10
  platforms :ruby do
11
- gem 'sqlite3'
11
+ gem 'sqlite3', '~> 1.3.6'
12
12
  end
13
13
 
14
14
  platforms :jruby do
@@ -8,7 +8,7 @@ gem 'nokogiri', RUBY_VERSION < '2.1' ? '~> 1.6.0' : '>= 1.7'
8
8
  gemspec :path => '../'
9
9
 
10
10
  platforms :ruby do
11
- gem 'sqlite3'
11
+ gem 'sqlite3', '~> 1.3.6'
12
12
  end
13
13
 
14
14
  platforms :jruby do
@@ -9,7 +9,7 @@ gem 'rails-controller-testing'
9
9
  gemspec :path => '../'
10
10
 
11
11
  platforms :ruby do
12
- gem 'sqlite3'
12
+ gem 'sqlite3', '~> 1.3.6'
13
13
  end
14
14
 
15
15
  platforms :jruby do
@@ -9,7 +9,7 @@ gem 'rails-controller-testing'
9
9
  gemspec :path => '../'
10
10
 
11
11
  platforms :ruby do
12
- gem 'sqlite3'
12
+ gem 'sqlite3', '~> 1.3.6'
13
13
  end
14
14
 
15
15
  platforms :jruby do
@@ -9,7 +9,7 @@ gem 'rails-controller-testing'
9
9
  gemspec :path => '../'
10
10
 
11
11
  platforms :ruby do
12
- gem 'sqlite3'
12
+ gem 'sqlite3', '~> 1.3.6'
13
13
  end
14
14
 
15
15
  platforms :jruby do
@@ -7,11 +7,8 @@ git_source(:github) do |repo_name|
7
7
  end
8
8
 
9
9
  gem 'rails', github: 'rails/rails'
10
- gem 'rack', github: 'rack/rack'
11
- gem 'arel', github: 'rails/arel'
12
- gem 'sprockets', github: 'rails/sprockets'
13
- gem 'sprockets-rails', github: 'rails/sprockets-rails'
14
10
  gem 'rails-controller-testing'
11
+ gem 'selenium-webdriver'
15
12
 
16
13
  gemspec :path => '../'
17
14
 
@@ -9,20 +9,21 @@ module ActionArgs
9
9
  kwargs, missing_required_params = {}, []
10
10
  parameter_names = method_parameters.map(&:last)
11
11
  method_parameters.reverse_each do |type, key|
12
+ trimmed_key = key.to_s.sub(/_params\z/, '').to_sym
12
13
  case type
13
14
  when :req
14
- missing_required_params << key unless params.key? key
15
+ missing_required_params << key unless params.key? trimmed_key
15
16
  next
16
17
  when :keyreq
17
- if params.key? key
18
- kwargs[key] = params[key]
18
+ if params.key? trimmed_key
19
+ kwargs[key] = params[trimmed_key]
19
20
  else
20
21
  missing_required_params << key
21
22
  end
22
23
  when :key
23
- kwargs[key] = params[key] if params.key? key
24
+ kwargs[key] = params[trimmed_key] if params.key? trimmed_key
24
25
  when :opt
25
- break if params.key? key
26
+ break if params.key? trimmed_key
26
27
  end
27
28
  # omitting parameters that are :block, :rest, :opt without a param, and :key without a param
28
29
  parameter_names.delete key
@@ -36,7 +37,7 @@ module ActionArgs
36
37
  end
37
38
  end
38
39
 
39
- values = parameter_names.map {|k| params[k]}
40
+ values = parameter_names.map {|k| params[k.to_s.sub(/_params\z/, '').to_sym]}
40
41
  values << kwargs if kwargs.any?
41
42
  values
42
43
  end
@@ -50,9 +51,10 @@ module ActionArgs
50
51
 
51
52
  method_parameters = method(method_name).parameters
52
53
  method_parameters.each do |type, key|
53
- if (key == target_model_name) && permitted_attributes
54
- params.require(key) if %i[req keyreq].include?(type)
55
- params[key] = params[key].try :permit, *permitted_attributes if params.key? key
54
+ trimmed_key = key.to_s.sub(/_params\z/, '').to_sym
55
+ if (trimmed_key == target_model_name) && permitted_attributes
56
+ params.require(trimmed_key) if %i[req keyreq].include?(type)
57
+ params[trimmed_key] = params[trimmed_key].try :permit, *permitted_attributes if params.key? trimmed_key
56
58
  end
57
59
  end
58
60
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActionArgs
4
- VERSION = '2.3.2'
4
+ VERSION = '2.4.0'
5
5
  end
@@ -21,18 +21,36 @@ class ActionArgs::ParamsHandlerTest < ActiveSupport::TestCase
21
21
  assert_equal ['1'], @controller.extract_method_arguments_from_params(:m)
22
22
  end
23
23
 
24
+ test '1 req with args named like strong parameters' do
25
+ def @controller.m(a_params) end
26
+
27
+ assert_equal ['1'], @controller.extract_method_arguments_from_params(:m)
28
+ end
29
+
24
30
  test '2 reqs' do
25
31
  def @controller.m(a, b) end
26
32
 
27
33
  assert_equal ['1', '2'], @controller.extract_method_arguments_from_params(:m)
28
34
  end
29
35
 
36
+ test '2 reqs with args named like strong parameters' do
37
+ def @controller.m(a_params, b_params) end
38
+
39
+ assert_equal ['1', '2'], @controller.extract_method_arguments_from_params(:m)
40
+ end
41
+
30
42
  test '1 opt with value' do
31
43
  def @controller.m(a = 'a') end
32
44
 
33
45
  assert_equal ['1'], @controller.extract_method_arguments_from_params(:m)
34
46
  end
35
47
 
48
+ test '1 opt with value with args named like strong parameters' do
49
+ def @controller.m(a_params = 'a') end
50
+
51
+ assert_equal ['1'], @controller.extract_method_arguments_from_params(:m)
52
+ end
53
+
36
54
  test '1 opt without value' do
37
55
  def @controller.m(x = 'x') end
38
56
 
@@ -111,6 +129,12 @@ class ActionArgs::ParamsHandlerTest < ActiveSupport::TestCase
111
129
  assert_equal [a: '1'], @controller.extract_method_arguments_from_params(:m)
112
130
  end
113
131
 
132
+ test 'key with args named like strong parameters' do
133
+ def @controller.m(a_params: nil) end
134
+
135
+ assert_equal [a_params: '1'], @controller.extract_method_arguments_from_params(:m)
136
+ end
137
+
114
138
  test 'key, key without value' do
115
139
  def @controller.m(a: nil, x: 'x') end
116
140
 
@@ -125,6 +149,12 @@ class ActionArgs::ParamsHandlerTest < ActiveSupport::TestCase
125
149
  assert_equal [a: '1'], @controller.extract_method_arguments_from_params(:m)
126
150
  end
127
151
 
152
+ test 'keyreq with args named like strong parameters' do
153
+ def @controller.m(a_params:) end
154
+
155
+ assert_equal [a_params: '1'], @controller.extract_method_arguments_from_params(:m)
156
+ end
157
+
128
158
  test 'keyreq, keyreq without value' do
129
159
  def @controller.m(a:, x:) end
130
160
 
@@ -136,7 +166,7 @@ class ActionArgs::ParamsHandlerTest < ActiveSupport::TestCase
136
166
 
137
167
  sub_test_case 'strengthen_params!' do
138
168
  setup do
139
- @params = ActionController::Parameters.new(x: '1', y: '2', foo: {a: 'a', b: 'b'}, bar: {a: 'a', b: 'b'}, baz: {a: 'a', b: 'b'}, hoge: {a: 'a', b: 'b'}, fuga: {a: 'a', b: 'b'})
169
+ @params = ActionController::Parameters.new(x: '1', y: '2', foo: {a: 'a', b: 'b'}, bar: {a: 'a', b: 'b'}, baz: {a: 'a', b: 'b'}, hoge: {a: 'a', b: 'b'}, fuga: {a: 'a', b: 'b'}, foo_foo: {a: 'a', b: 'b'}, hoge_hoge: {a: 'a', b: 'b'}, fuga_fuga: {a: 'a', b: 'b'})
140
170
  end
141
171
 
142
172
  def execute_strengthen_params!(controller)
@@ -153,6 +183,14 @@ class ActionArgs::ParamsHandlerTest < ActiveSupport::TestCase
153
183
  assert_not_nil @params[:foo][:b]
154
184
  end
155
185
 
186
+ test 'requiring via :req, permitting all scalars with args named like strong parameters' do
187
+ execute_strengthen_params! FooFooController ||= Class.new(ApplicationController) { permits :a, :b; def a(foo_foo_params) end }
188
+
189
+ assert @params[:foo_foo].permitted?
190
+ assert_not_nil @params[:foo_foo][:a]
191
+ assert_not_nil @params[:foo_foo][:b]
192
+ end
193
+
156
194
  test 'requiring via :req, not permitting all scalars' do
157
195
  execute_strengthen_params! BarController ||= Class.new(ApplicationController) { permits :a; def a(bar, x = 'x') end }
158
196
 
@@ -175,6 +213,14 @@ class ActionArgs::ParamsHandlerTest < ActiveSupport::TestCase
175
213
  assert_not_nil @params[:hoge][:b]
176
214
  end
177
215
 
216
+ test 'requiring via :opt, permitting all scalars with args named like strong parameters' do
217
+ execute_strengthen_params! HogeHogeController ||= Class.new(ApplicationController) { permits :a, :b; def a(hoge_hoge_params = {}) end }
218
+
219
+ assert @params[:hoge_hoge].permitted?
220
+ assert_not_nil @params[:hoge_hoge][:a]
221
+ assert_not_nil @params[:hoge_hoge][:b]
222
+ end
223
+
178
224
  test 'requiring via :key, permitting all scalars' do
179
225
  execute_strengthen_params! FugaController ||= Class.new(ApplicationController) { permits :a, :b; def a(fuga: {}) end }
180
226
 
@@ -183,6 +229,14 @@ class ActionArgs::ParamsHandlerTest < ActiveSupport::TestCase
183
229
  assert_not_nil @params[:fuga][:b]
184
230
  end
185
231
 
232
+ test 'requiring via :key, permitting all scalars with args named like strong parameters' do
233
+ execute_strengthen_params! FugaFugaController ||= Class.new(ApplicationController) { permits :a, :b; def a(fuga_fuga_params: {}) end }
234
+
235
+ assert @params[:fuga_fuga].permitted?
236
+ assert_not_nil @params[:fuga_fuga][:a]
237
+ assert_not_nil @params[:fuga_fuga][:b]
238
+ end
239
+
186
240
  test '"model_name" option' do
187
241
  execute_strengthen_params! PiyoController ||= Class.new(ApplicationController) { permits :a, :b, model_name: 'Foo'; def a(foo) end }
188
242
 
@@ -190,5 +244,13 @@ class ActionArgs::ParamsHandlerTest < ActiveSupport::TestCase
190
244
  assert_not_nil @params[:foo][:a]
191
245
  assert_not_nil @params[:foo][:b]
192
246
  end
247
+
248
+ test '"model_name" option with args named like strong parameters' do
249
+ execute_strengthen_params! PiyoPiyoController = Class.new(ApplicationController) { permits :a, :b, model_name: 'Foo'; def a(foo_params) end }
250
+
251
+ assert @params[:foo].permitted?
252
+ assert_not_nil @params[:foo][:a]
253
+ assert_not_nil @params[:foo][:b]
254
+ end
193
255
  end
194
256
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: action_args
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.2
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Akira Matsuda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-22 00:00:00.000000000 Z
11
+ date: 2019-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -111,7 +111,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
111
  - !ruby/object:Gem::Version
112
112
  version: '0'
113
113
  requirements: []
114
- rubygems_version: 3.0.1
114
+ rubyforge_project:
115
+ rubygems_version: 2.7.8
115
116
  signing_key:
116
117
  specification_version: 4
117
118
  summary: Controller action arguments parameterizer for Rails 4+ & Ruby 2.0+