action_args 2.4.0 → 2.5.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: 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+