action_args 2.3.0 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  source 'https://rubygems.org'
3
4
 
4
5
  gem 'rails', '~> 4.1.0'
@@ -7,7 +8,7 @@ gem 'nokogiri', RUBY_VERSION < '2.1' ? '~> 1.6.0' : '>= 1.7'
7
8
  gemspec :path => '../'
8
9
 
9
10
  platforms :ruby do
10
- gem 'sqlite3'
11
+ gem 'sqlite3', '~> 1.3.6'
11
12
  end
12
13
 
13
14
  platforms :jruby do
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  source 'https://rubygems.org'
3
4
 
4
5
  gem 'rails', '~> 4.2.0'
@@ -7,7 +8,7 @@ gem 'nokogiri', RUBY_VERSION < '2.1' ? '~> 1.6.0' : '>= 1.7'
7
8
  gemspec :path => '../'
8
9
 
9
10
  platforms :ruby do
10
- gem 'sqlite3'
11
+ gem 'sqlite3', '~> 1.3.6'
11
12
  end
12
13
 
13
14
  platforms :jruby do
@@ -1,18 +1,13 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  source 'https://rubygems.org'
3
- git_source(:github) do |repo_name|
4
- repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
5
- "https://github.com/#{repo_name}.git"
6
- end
7
4
 
8
5
  gem 'rails', '~> 5.0.1'
9
6
 
10
- gem 'rails-controller-testing'
11
-
12
7
  gemspec :path => '../'
13
8
 
14
9
  platforms :ruby do
15
- gem 'sqlite3'
10
+ gem 'sqlite3', '~> 1.3.6'
16
11
  end
17
12
 
18
13
  platforms :jruby do
@@ -1,18 +1,13 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  source 'https://rubygems.org'
3
- git_source(:github) do |repo_name|
4
- repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
5
- "https://github.com/#{repo_name}.git"
6
- end
7
4
 
8
5
  gem 'rails', '~> 5.1.0'
9
6
 
10
- gem 'rails-controller-testing'
11
-
12
7
  gemspec :path => '../'
13
8
 
14
9
  platforms :ruby do
15
- gem 'sqlite3'
10
+ gem 'sqlite3', '~> 1.3.6'
16
11
  end
17
12
 
18
13
  platforms :jruby do
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gem 'rails', '~> 5.2.0'
6
+
7
+ gemspec :path => '../'
8
+
9
+ platforms :ruby do
10
+ gem 'sqlite3', '~> 1.3.6'
11
+ end
12
+
13
+ platforms :jruby do
14
+ gem 'activerecord-jdbcsqlite3-adapter'
15
+ end
@@ -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
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gem 'rails', '~> 6.1.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
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  source 'https://rubygems.org'
3
4
  git_source(:github) do |repo_name|
4
5
  repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
@@ -6,11 +7,7 @@ git_source(:github) do |repo_name|
6
7
  end
7
8
 
8
9
  gem 'rails', github: 'rails/rails'
9
- gem 'rack', github: 'rack/rack'
10
- gem 'arel', github: 'rails/arel'
11
- gem 'sprockets', github: 'rails/sprockets'
12
- gem 'sprockets-rails', github: 'rails/sprockets-rails'
13
- gem 'rails-controller-testing'
10
+ gem 'selenium-webdriver'
14
11
 
15
12
  gemspec :path => '../'
16
13
 
data/lib/action_args.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'action_args/params_handler'
3
4
  require 'action_args/abstract_controller'
4
5
  require 'action_args/callbacks'
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require_relative 'params_handler'
3
4
  using ActionArgs::ParamsHandler
4
5
 
@@ -6,11 +7,15 @@ module ActionArgs
6
7
  module AbstractControllerMethods
7
8
  def send_action(method_name, *args)
8
9
  return super unless args.empty?
9
- return super unless defined?(params)
10
+ return super if !defined?(params) || params.nil?
10
11
 
11
12
  strengthen_params! method_name
12
- values = extract_method_arguments_from_params method_name
13
- 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
14
19
  end
15
20
  end
16
21
 
@@ -1,24 +1,32 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  using ActionArgs::ParamsHandler
3
4
 
4
5
  module ActionArgs
5
6
  module ActiveSupport
6
7
  # For Rails >= 5.1
7
8
  module CallbackParameterizer
8
- # Extending AS::Callbacks::Callback's `expand` not just to call specified
9
+ # Extending AS::Callbacks::Callback's `make_lambda` not just to call specified
9
10
  # method but to call the method with method parameters taken from `params`.
10
11
  # This would happen only when
11
12
  # * the target object is_a ActionController object
12
13
  # * the filter was not defined via lambda
13
- def expand(*)
14
- target, block, method, *arguments = super
14
+ def make_lambda
15
+ lambda do |target, value, &block|
16
+ target, block, method, *arguments = expand(target, value, block)
15
17
 
16
- if (ActionController::Base === target) && (method != :instance_exec) && arguments.empty?
17
- target.strengthen_params! method
18
- arguments = target.extract_method_arguments_from_params method
18
+ if (ActionController::Base === target) && (method != :instance_exec) && arguments.empty?
19
+ target.strengthen_params! method
20
+ arguments, keyword_arguments = target.extract_method_arguments_from_params method
21
+ if keyword_arguments.any?
22
+ target.send(method, *arguments, **keyword_arguments, &block)
23
+ else
24
+ target.send(method, *arguments, &block)
25
+ end
26
+ else
27
+ target.send(method, *arguments, &block)
28
+ end
19
29
  end
20
-
21
- [target, block, method, *arguments]
22
30
  end
23
31
  end
24
32
 
@@ -34,7 +42,8 @@ module ActionArgs
34
42
  lambda do |target, _, &blk|
35
43
  if ActionController::Base === target
36
44
  target.strengthen_params! filter
37
- values = target.extract_method_arguments_from_params filter
45
+ values, kwargs_values = target.extract_method_arguments_from_params filter
46
+ values << kwargs_values if kwargs_values.any?
38
47
  target.send filter, *values, &blk
39
48
  else
40
49
  target.send filter, &blk
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module ActionArgs
3
4
  module ParamsHandler
4
5
  refine AbstractController::Base do
@@ -8,20 +9,21 @@ module ActionArgs
8
9
  kwargs, missing_required_params = {}, []
9
10
  parameter_names = method_parameters.map(&:last)
10
11
  method_parameters.reverse_each do |type, key|
12
+ trimmed_key = key.to_s.sub(/_params\z/, '').to_sym
11
13
  case type
12
14
  when :req
13
- missing_required_params << key unless params.key? key
15
+ missing_required_params << key unless params.key? trimmed_key
14
16
  next
15
17
  when :keyreq
16
- if params.key? key
17
- kwargs[key] = params[key]
18
+ if params.key? trimmed_key
19
+ kwargs[key] = params[trimmed_key]
18
20
  else
19
21
  missing_required_params << key
20
22
  end
21
23
  when :key
22
- kwargs[key] = params[key] if params.key? key
24
+ kwargs[key] = params[trimmed_key] if params.key? trimmed_key
23
25
  when :opt
24
- break if params.key? key
26
+ break if params.key? trimmed_key
25
27
  end
26
28
  # omitting parameters that are :block, :rest, :opt without a param, and :key without a param
27
29
  parameter_names.delete key
@@ -35,9 +37,8 @@ module ActionArgs
35
37
  end
36
38
  end
37
39
 
38
- values = parameter_names.map {|k| params[k]}
39
- values << kwargs if kwargs.any?
40
- values
40
+ values = parameter_names.map {|k| params[k.to_s.sub(/_params\z/, '').to_sym]}
41
+ [values, kwargs]
41
42
  end
42
43
 
43
44
  # permits declared model attributes in the params Hash
@@ -49,9 +50,10 @@ module ActionArgs
49
50
 
50
51
  method_parameters = method(method_name).parameters
51
52
  method_parameters.each do |type, key|
52
- if (key == target_model_name) && permitted_attributes
53
- params.require(key) if %i[req keyreq].include?(type)
54
- params[key] = params[key].try :permit, *permitted_attributes if params.key? key
53
+ trimmed_key = key.to_s.sub(/_params\z/, '').to_sym
54
+ if (trimmed_key == target_model_name) && permitted_attributes
55
+ params.require(trimmed_key) if %i[req keyreq].include?(type)
56
+ params[trimmed_key] = params[trimmed_key].try :permit, *permitted_attributes if params.key? trimmed_key
55
57
  end
56
58
  end
57
59
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module ActionArgs
3
- VERSION = '2.3.0'
4
+ VERSION = '2.6.0'
4
5
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # load original rails scaffold_controller generator
3
4
  require 'rails/generators/rails/scaffold_controller/scaffold_controller_generator'
4
5
 
@@ -6,7 +7,7 @@ require 'rails/generators/rails/scaffold_controller/scaffold_controller_generato
6
7
  module Rails
7
8
  module Generators
8
9
  class ActionArgsScaffoldControllerGenerator < ::Rails::Generators::ScaffoldControllerGenerator
9
- argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
10
+ argument :attributes, type: :array, default: [], banner: 'field:type field:type'
10
11
  source_root File.expand_path('../templates', __FILE__)
11
12
  end
12
13
  end
@@ -1,5 +1,4 @@
1
1
  class <%= controller_class_name %>Controller < ApplicationController
2
- before_action :set_<%= singular_table_name %>, only: [:show, :edit, :update, :destroy]
3
2
  <% if defined? ActionController::StrongParameters -%>
4
3
  permits <%= attributes.map {|a| ":#{a.name}" }.join(', ') %>
5
4
 
@@ -10,7 +9,8 @@ class <%= controller_class_name %>Controller < ApplicationController
10
9
  end
11
10
 
12
11
  # GET <%= route_url %>/1
13
- def show
12
+ def show(id)
13
+ @<%= singular_table_name %> = <%= orm_class.find(class_name, 'id') %>
14
14
  end
15
15
 
16
16
  # GET <%= route_url %>/new
@@ -19,7 +19,8 @@ class <%= controller_class_name %>Controller < ApplicationController
19
19
  end
20
20
 
21
21
  # GET <%= route_url %>/1/edit
22
- def edit
22
+ def edit(id)
23
+ @<%= singular_table_name %> = <%= orm_class.find(class_name, 'id') %>
23
24
  end
24
25
 
25
26
  # POST <%= route_url %>
@@ -34,7 +35,9 @@ class <%= controller_class_name %>Controller < ApplicationController
34
35
  end
35
36
 
36
37
  # PUT <%= route_url %>/1
37
- def update(<%= singular_table_name %>)
38
+ def update(id, <%= singular_table_name %>)
39
+ @<%= singular_table_name %> = <%= orm_class.find(class_name, 'id') %>
40
+
38
41
  <% if orm_instance.respond_to? :update -%>
39
42
  if @<%= orm_instance.update(singular_table_name) %>
40
43
  <% else -%>
@@ -47,15 +50,10 @@ class <%= controller_class_name %>Controller < ApplicationController
47
50
  end
48
51
 
49
52
  # DELETE <%= route_url %>/1
50
- def destroy
53
+ def destroy(id)
54
+ @<%= singular_table_name %> = <%= orm_class.find(class_name, 'id') %>
51
55
  @<%= orm_instance.destroy %>
52
56
 
53
57
  redirect_to <%= index_helper %>_url, notice: <%= "'#{human_name} was successfully destroyed.'" %>
54
58
  end
55
-
56
- private
57
- # Use callbacks to share common setup or constraints between actions.
58
- def set_<%= singular_table_name %>(id)
59
- @<%= singular_table_name %> = <%= orm_class.find(class_name, 'id') %>
60
- end
61
59
  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.0
4
+ version: 2.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Akira Matsuda
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-06 00:00:00.000000000 Z
11
+ date: 2021-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -71,6 +71,9 @@ files:
71
71
  - gemfiles/rails_42.gemfile
72
72
  - gemfiles/rails_50.gemfile
73
73
  - gemfiles/rails_51.gemfile
74
+ - gemfiles/rails_52.gemfile
75
+ - gemfiles/rails_60.gemfile
76
+ - gemfiles/rails_61.gemfile
74
77
  - gemfiles/rails_edge.gemfile
75
78
  - lib/action_args.rb
76
79
  - lib/action_args/abstract_controller.rb
@@ -79,23 +82,12 @@ files:
79
82
  - lib/action_args/version.rb
80
83
  - lib/generators/rails/action_args_scaffold_controller_generator.rb
81
84
  - lib/generators/rails/templates/controller.rb
82
- - test/controllers/action_args_controller_test.rb
83
- - test/controllers/hooks_test.rb
84
- - test/controllers/kwargs_controller_test.rb
85
- - test/controllers/kwargs_keyreq_controller_test.rb
86
- - test/controllers/ordinal_controller_test.rb
87
- - test/controllers/strong_parameters_test.rb
88
- - test/fake_app.rb
89
- - test/kwargs_controllers.rb
90
- - test/kwargs_keyreq_controllers.rb
91
- - test/mailers/action_mailer_test.rb
92
- - test/params_handler/params_handler_test.rb
93
- - test/test_helper.rb
94
85
  homepage: http://asakusa.rubyist.net/
95
86
  licenses:
96
87
  - MIT
97
- metadata: {}
98
- post_install_message:
88
+ metadata:
89
+ source_code_uri: https://github.com/asakusarb/action_args
90
+ post_install_message:
99
91
  rdoc_options: []
100
92
  require_paths:
101
93
  - lib
@@ -110,21 +102,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
102
  - !ruby/object:Gem::Version
111
103
  version: '0'
112
104
  requirements: []
113
- rubyforge_project:
114
- rubygems_version: 2.6.13
115
- signing_key:
105
+ rubygems_version: 3.2.15
106
+ signing_key:
116
107
  specification_version: 4
117
108
  summary: Controller action arguments parameterizer for Rails 4+ & Ruby 2.0+
118
- test_files:
119
- - test/controllers/action_args_controller_test.rb
120
- - test/controllers/hooks_test.rb
121
- - test/controllers/kwargs_controller_test.rb
122
- - test/controllers/kwargs_keyreq_controller_test.rb
123
- - test/controllers/ordinal_controller_test.rb
124
- - test/controllers/strong_parameters_test.rb
125
- - test/fake_app.rb
126
- - test/kwargs_controllers.rb
127
- - test/kwargs_keyreq_controllers.rb
128
- - test/mailers/action_mailer_test.rb
129
- - test/params_handler/params_handler_test.rb
130
- - test/test_helper.rb
109
+ test_files: []