action_args 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b4a8d847e94c900a71e3ce0c0bc9e5fb1f33c195a2b30222fad4ca5f4574d73
4
- data.tar.gz: d557de21bbcb6eb76f88c4d4bc70fb899f58449192e9125f7c8548e2f8d17ab8
3
+ metadata.gz: ebaa6df1f21d52be3f527762e62810ba795dfe62a9f73c96e5e78463fbd8cf8d
4
+ data.tar.gz: cbfbe0fa35d12606d155744f9aeca4140f4bc7bea0ba51e09b1bdbc8915850b1
5
5
  SHA512:
6
- metadata.gz: 43ee46cb44156ad2cd9a47aab03e312b00058d2173c416e6f60152c3b423ddadfa92c0ebf41c4c22b17d6c0daac3e029a3042a1d3b5272fcf18a18a5a1e03d58
7
- data.tar.gz: fea23dadb984ed9d43250ead66849f38ed45d5a5ca053b1c6513e7235d0dd7d961ba9d6b7773126af104d1ed93a31d99f01b168403dded36074fcea12b273e38
6
+ metadata.gz: c97087901cb25a555e351c9dc805491142b7a2c21c444ab315969bc127a4b9e278f1d570c0e037b2ba0233cd78cd1ef706a14d102866ac157dbf7b0d051c95f7
7
+ data.tar.gz: 4e83eac63238b1d4013531d1f33e51d81d4f6d11b9ca1a05e0d95797fca90a8f657d5d5b7c5494081db1faa65091f997f940ff1c4fb136ba7f59b7e423470f80
@@ -1,16 +1,15 @@
1
1
  script: 'bundle exec rake -t test'
2
2
  language: ruby
3
- sudo: false
4
3
 
5
4
  before_install:
6
5
  - "ruby -e 'exit RUBY_VERSION.to_f >= 2.3' && gem up --system || (gem i rubygems-update -v '<3' && update_rubygems)"
7
6
  - gem up bundler
8
7
 
9
8
  # rvm:
10
- # - 2.6.0
11
- # - 2.5.3
12
- # - 2.4.5
13
- # - 2.3.7
9
+ # - 2.6.6
10
+ # - 2.5.8
11
+ # - 2.4.10
12
+ # - 2.3.8
14
13
  # - 2.2.10
15
14
  # - 2.1.10
16
15
  # - 2.0.0
@@ -25,17 +24,23 @@ before_install:
25
24
 
26
25
  matrix:
27
26
  include:
28
- - rvm: 2.6.0
27
+ - rvm: 2.7.1
28
+ gemfile: gemfiles/rails_60.gemfile
29
+ - rvm: 2.6.6
30
+ gemfile: gemfiles/rails_60.gemfile
31
+ - rvm: 2.6.6
29
32
  gemfile: gemfiles/rails_52.gemfile
30
- - rvm: 2.6.0
33
+ - rvm: 2.6.6
31
34
  gemfile: gemfiles/rails_51.gemfile
32
- - rvm: 2.6.0
35
+ - rvm: 2.6.6
33
36
  gemfile: gemfiles/rails_50.gemfile
34
- - rvm: 2.6.0
37
+ - rvm: 2.6.6
35
38
  gemfile: gemfiles/rails_edge.gemfile
36
- - rvm: 2.5.3
39
+ - rvm: 2.5.8
40
+ gemfile: gemfiles/rails_60.gemfile
41
+ - rvm: 2.5.8
37
42
  gemfile: gemfiles/rails_52.gemfile
38
- - rvm: 2.4.5
43
+ - rvm: 2.4.10
39
44
  gemfile: gemfiles/rails_52.gemfile
40
45
  - rvm: 2.3.8
41
46
  gemfile: gemfiles/rails_52.gemfile
@@ -49,16 +54,17 @@ matrix:
49
54
  gemfile: gemfiles/rails_42.gemfile
50
55
 
51
56
  - rvm: ruby-head
52
- gemfile: gemfiles/rails_52.gemfile
57
+ gemfile: gemfiles/rails_60.gemfile
53
58
  - rvm: ruby-head
54
59
  gemfile: gemfiles/rails_edge.gemfile
55
60
 
56
- - rvm: jruby-9.2.6.0
61
+ - rvm: jruby-9.2.11.1
57
62
  gemfile: gemfiles/rails_52.gemfile
58
63
  - rvm: rubinius-3
59
64
  gemfile: gemfiles/rails_52.gemfile
60
65
 
61
66
  allow_failures:
62
- - rvm: jruby-9.2.6.0
67
+ - rvm: ruby-head
68
+ - rvm: jruby-9.2.11.1
63
69
  - rvm: rubinius-3
64
70
  - gemfile: gemfiles/rails_edge.gemfile
data/README.md CHANGED
@@ -247,9 +247,9 @@ You may notice that
247
247
 
248
248
  ## Supported Versions
249
249
 
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
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.x, 2.8 (trunk), JRuby, & Rubinius with 2.0+ mode
251
251
 
252
- * Rails 4.1.x, 4.2.x, 5.0, 5.1, 5.2, 6.0 (edge)
252
+ * Rails 4.1.x, 4.2.x, 5.0, 5.1, 5.2, 6.0, 6.1 (edge)
253
253
 
254
254
  For Rails 4.0.x, please use Version 1.5.4.
255
255
 
@@ -4,8 +4,6 @@ source 'https://rubygems.org'
4
4
 
5
5
  gem 'rails', '~> 5.0.1'
6
6
 
7
- gem 'rails-controller-testing'
8
-
9
7
  gemspec :path => '../'
10
8
 
11
9
  platforms :ruby do
@@ -4,8 +4,6 @@ source 'https://rubygems.org'
4
4
 
5
5
  gem 'rails', '~> 5.1.0'
6
6
 
7
- gem 'rails-controller-testing'
8
-
9
7
  gemspec :path => '../'
10
8
 
11
9
  platforms :ruby do
@@ -4,8 +4,6 @@ source 'https://rubygems.org'
4
4
 
5
5
  gem 'rails', '~> 5.2.0'
6
6
 
7
- gem 'rails-controller-testing'
8
-
9
7
  gemspec :path => '../'
10
8
 
11
9
  platforms :ruby do
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gem 'rails', '~> 6.0.0'
6
+ gem 'selenium-webdriver'
7
+
8
+ gemspec path: '../'
9
+
10
+ platforms :ruby do
11
+ gem 'sqlite3'
12
+ end
13
+
14
+ platforms :jruby do
15
+ gem 'activerecord-jdbcsqlite3-adapter'
16
+ end
@@ -7,7 +7,6 @@ git_source(:github) do |repo_name|
7
7
  end
8
8
 
9
9
  gem 'rails', github: 'rails/rails'
10
- gem 'rails-controller-testing'
11
10
  gem 'selenium-webdriver'
12
11
 
13
12
  gemspec :path => '../'
@@ -10,8 +10,12 @@ module ActionArgs
10
10
  return super if !defined?(params) || params.nil?
11
11
 
12
12
  strengthen_params! method_name
13
- values = extract_method_arguments_from_params method_name
14
- super method_name, *values
13
+ values, kwargs_values = extract_method_arguments_from_params method_name
14
+ if kwargs_values.any?
15
+ super method_name, *values, **kwargs_values
16
+ else
17
+ super method_name, *values
18
+ end
15
19
  end
16
20
  end
17
21
 
@@ -16,7 +16,8 @@ module ActionArgs
16
16
 
17
17
  if (ActionController::Base === target) && (method != :instance_exec) && arguments.empty?
18
18
  target.strengthen_params! method
19
- arguments = target.extract_method_arguments_from_params method
19
+ arguments, kwargs_arguments = target.extract_method_arguments_from_params method
20
+ arguments << kwargs_arguments if kwargs_arguments.any?
20
21
  end
21
22
 
22
23
  [target, block, method, *arguments]
@@ -35,7 +36,8 @@ module ActionArgs
35
36
  lambda do |target, _, &blk|
36
37
  if ActionController::Base === target
37
38
  target.strengthen_params! filter
38
- values = target.extract_method_arguments_from_params filter
39
+ values, kwargs_values = target.extract_method_arguments_from_params filter
40
+ values << kwargs_values if kwargs_values.any?
39
41
  target.send filter, *values, &blk
40
42
  else
41
43
  target.send filter, &blk
@@ -38,8 +38,7 @@ module ActionArgs
38
38
  end
39
39
 
40
40
  values = parameter_names.map {|k| params[k.to_s.sub(/_params\z/, '').to_sym]}
41
- values << kwargs if kwargs.any?
42
- values
41
+ [values, kwargs]
43
42
  end
44
43
 
45
44
  # permits declared model attributes in the params Hash
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActionArgs
4
- VERSION = '2.4.0'
4
+ VERSION = '2.5.0'
5
5
  end
@@ -12,109 +12,109 @@ class ActionArgs::ParamsHandlerTest < ActiveSupport::TestCase
12
12
  test 'no parameters' do
13
13
  def @controller.m() end
14
14
 
15
- assert_equal [], @controller.extract_method_arguments_from_params(:m)
15
+ assert_equal [[], {}], @controller.extract_method_arguments_from_params(:m)
16
16
  end
17
17
 
18
18
  test '1 req' do
19
19
  def @controller.m(a) end
20
20
 
21
- assert_equal ['1'], @controller.extract_method_arguments_from_params(:m)
21
+ assert_equal [['1'], {}], @controller.extract_method_arguments_from_params(:m)
22
22
  end
23
23
 
24
24
  test '1 req with args named like strong parameters' do
25
25
  def @controller.m(a_params) end
26
26
 
27
- assert_equal ['1'], @controller.extract_method_arguments_from_params(:m)
27
+ assert_equal [['1'], {}], @controller.extract_method_arguments_from_params(:m)
28
28
  end
29
29
 
30
30
  test '2 reqs' do
31
31
  def @controller.m(a, b) end
32
32
 
33
- assert_equal ['1', '2'], @controller.extract_method_arguments_from_params(:m)
33
+ assert_equal [['1', '2'], {}], @controller.extract_method_arguments_from_params(:m)
34
34
  end
35
35
 
36
36
  test '2 reqs with args named like strong parameters' do
37
37
  def @controller.m(a_params, b_params) end
38
38
 
39
- assert_equal ['1', '2'], @controller.extract_method_arguments_from_params(:m)
39
+ assert_equal [['1', '2'], {}], @controller.extract_method_arguments_from_params(:m)
40
40
  end
41
41
 
42
42
  test '1 opt with value' do
43
43
  def @controller.m(a = 'a') end
44
44
 
45
- assert_equal ['1'], @controller.extract_method_arguments_from_params(:m)
45
+ assert_equal [['1'], {}], @controller.extract_method_arguments_from_params(:m)
46
46
  end
47
47
 
48
48
  test '1 opt with value with args named like strong parameters' do
49
49
  def @controller.m(a_params = 'a') end
50
50
 
51
- assert_equal ['1'], @controller.extract_method_arguments_from_params(:m)
51
+ assert_equal [['1'], {}], @controller.extract_method_arguments_from_params(:m)
52
52
  end
53
53
 
54
54
  test '1 opt without value' do
55
55
  def @controller.m(x = 'x') end
56
56
 
57
- assert_equal [], @controller.extract_method_arguments_from_params(:m)
57
+ assert_equal [[], {}], @controller.extract_method_arguments_from_params(:m)
58
58
  end
59
59
 
60
60
  test 'req, opt with value' do
61
61
  def @controller.m(a, b = 'b') end
62
62
 
63
- assert_equal ['1', '2'], @controller.extract_method_arguments_from_params(:m)
63
+ assert_equal [['1', '2'], {}], @controller.extract_method_arguments_from_params(:m)
64
64
  end
65
65
 
66
66
  test 'req, opt without value' do
67
67
  def @controller.m(a, x = 'x') end
68
68
 
69
- assert_equal ['1'], @controller.extract_method_arguments_from_params(:m)
69
+ assert_equal [['1'], {}], @controller.extract_method_arguments_from_params(:m)
70
70
  end
71
71
 
72
72
  test 'opt with value, opt with value' do
73
73
  def @controller.m(a = 'a', b = 'b') end
74
74
 
75
- assert_equal ['1', '2'], @controller.extract_method_arguments_from_params(:m)
75
+ assert_equal [['1', '2'], {}], @controller.extract_method_arguments_from_params(:m)
76
76
  end
77
77
 
78
78
  test 'opt with value, opt without value' do
79
79
  def @controller.m(a = 'a', x = 'x') end
80
80
 
81
- assert_equal ['1'], @controller.extract_method_arguments_from_params(:m)
81
+ assert_equal [['1'], {}], @controller.extract_method_arguments_from_params(:m)
82
82
  end
83
83
 
84
84
  test 'opt without value, opt with value' do
85
85
  def @controller.m(x = 'x', a = 'a') end
86
86
 
87
- assert_equal [nil, '1'], @controller.extract_method_arguments_from_params(:m)
87
+ assert_equal [[nil, '1'], {}], @controller.extract_method_arguments_from_params(:m)
88
88
  end
89
89
 
90
90
  test 'opt without value, opt without value' do
91
91
  def @controller.m(x = 'x', y = 'y') end
92
92
 
93
- assert_equal [], @controller.extract_method_arguments_from_params(:m)
93
+ assert_equal [[], {}], @controller.extract_method_arguments_from_params(:m)
94
94
  end
95
95
 
96
96
  test 'opt with value, req' do
97
97
  def @controller.m(a = 'a', b) end
98
98
 
99
- assert_equal ['1', '2'], @controller.extract_method_arguments_from_params(:m)
99
+ assert_equal [['1', '2'], {}], @controller.extract_method_arguments_from_params(:m)
100
100
  end
101
101
 
102
102
  test 'opt without value, req' do
103
103
  def @controller.m(x = 'x', a) end
104
104
 
105
- assert_equal ['1'], @controller.extract_method_arguments_from_params(:m)
105
+ assert_equal [['1'], {}], @controller.extract_method_arguments_from_params(:m)
106
106
  end
107
107
 
108
108
  test 'opt without value, opt with value, req' do
109
109
  def @controller.m(x = 'x', b = 'b', a) end
110
110
 
111
- assert_equal [nil, '2', '1'], @controller.extract_method_arguments_from_params(:m)
111
+ assert_equal [[nil, '2', '1'], {}], @controller.extract_method_arguments_from_params(:m)
112
112
  end
113
113
 
114
114
  test 'opt with value, opt without value, req' do
115
115
  def @controller.m(b = 'b', x = 'x', a) end
116
116
 
117
- assert_equal ['2', '1'], @controller.extract_method_arguments_from_params(:m)
117
+ assert_equal [['2', '1'], {}], @controller.extract_method_arguments_from_params(:m)
118
118
  end
119
119
 
120
120
  test 'req without a value' do
@@ -126,19 +126,19 @@ class ActionArgs::ParamsHandlerTest < ActiveSupport::TestCase
126
126
  test 'key' do
127
127
  def @controller.m(a: nil) end
128
128
 
129
- assert_equal [a: '1'], @controller.extract_method_arguments_from_params(:m)
129
+ assert_equal [[], {a: '1'}], @controller.extract_method_arguments_from_params(:m)
130
130
  end
131
131
 
132
132
  test 'key with args named like strong parameters' do
133
133
  def @controller.m(a_params: nil) end
134
134
 
135
- assert_equal [a_params: '1'], @controller.extract_method_arguments_from_params(:m)
135
+ assert_equal [[], {a_params: '1'}], @controller.extract_method_arguments_from_params(:m)
136
136
  end
137
137
 
138
138
  test 'key, key without value' do
139
139
  def @controller.m(a: nil, x: 'x') end
140
140
 
141
- assert_equal [a: '1'], @controller.extract_method_arguments_from_params(:m)
141
+ assert_equal [[], {a: '1'}], @controller.extract_method_arguments_from_params(:m)
142
142
  end
143
143
 
144
144
  if RUBY_VERSION >= '2.1'
@@ -146,13 +146,13 @@ class ActionArgs::ParamsHandlerTest < ActiveSupport::TestCase
146
146
  test 'keyreq' do
147
147
  def @controller.m(a:) end
148
148
 
149
- assert_equal [a: '1'], @controller.extract_method_arguments_from_params(:m)
149
+ assert_equal [[], {a: '1'}], @controller.extract_method_arguments_from_params(:m)
150
150
  end
151
151
 
152
152
  test 'keyreq with args named like strong parameters' do
153
153
  def @controller.m(a_params:) end
154
154
 
155
- assert_equal [a_params: '1'], @controller.extract_method_arguments_from_params(:m)
155
+ assert_equal [[], {a_params: '1'}], @controller.extract_method_arguments_from_params(:m)
156
156
  end
157
157
 
158
158
  test 'keyreq, keyreq without value' do
@@ -6,15 +6,20 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
6
6
  require 'rails'
7
7
  require 'active_record'
8
8
  require 'action_controller/railtie'
9
- begin
10
- require 'rails-controller-testing'
11
- rescue LoadError
12
- end
13
9
  require 'action_args'
14
10
  require 'fake_app'
15
11
  require 'test/unit/rails/test_help'
16
12
  Bundler.require
17
13
 
14
+ module ActionController::TestCase::Assigns
15
+ def assigns(key = nil)
16
+ assigns = {}.with_indifferent_access
17
+ @controller.view_assigns.each { |k, v| assigns.regular_writer(k, v) }
18
+ key.nil? ? assigns : assigns[key]
19
+ end
20
+ end
21
+ ActionController::TestCase.include ActionController::TestCase::Assigns
22
+
18
23
  if Rails.version < '5'
19
24
  module ActionControllerTestingMonkey
20
25
  def get(path, params: nil, session: nil)
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.4.0
4
+ version: 2.5.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-02-15 00:00:00.000000000 Z
11
+ date: 2020-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -72,6 +72,7 @@ files:
72
72
  - gemfiles/rails_50.gemfile
73
73
  - gemfiles/rails_51.gemfile
74
74
  - gemfiles/rails_52.gemfile
75
+ - gemfiles/rails_60.gemfile
75
76
  - gemfiles/rails_edge.gemfile
76
77
  - lib/action_args.rb
77
78
  - lib/action_args/abstract_controller.rb
@@ -111,8 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
112
  - !ruby/object:Gem::Version
112
113
  version: '0'
113
114
  requirements: []
114
- rubyforge_project:
115
- rubygems_version: 2.7.8
115
+ rubygems_version: 3.2.0.pre1
116
116
  signing_key:
117
117
  specification_version: 4
118
118
  summary: Controller action arguments parameterizer for Rails 4+ & Ruby 2.0+