action_args 1.5.2 → 1.5.3

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
  SHA1:
3
- metadata.gz: bc3c3e13a176e31e7bd8cd5fef3f81ad07ec90e1
4
- data.tar.gz: 2a9c273f4ff29a1648f5c7668480d9d89a38edce
3
+ metadata.gz: 1807030ec2fd680d15c088b5c5be6832d1418095
4
+ data.tar.gz: ee7b83c11cc9c38368a0c33205aa15bbf8aa7d5a
5
5
  SHA512:
6
- metadata.gz: 66054d421bd9685f970bbe57aeb2337013e2e46dbb062ac46aa2a702b5f20ecb910a0a26294f7f07ca502c1c82974ce045fcf9fa61bb00aa528fd21171b42752
7
- data.tar.gz: 4c124ceb79d14182f86fad1fc6fb4b3cda4c3ef2dc75dab8f4d3ad8b974a253d097524eddaae879139f78defa0514d89c5e3eed0c58a5fef90d503d92b563245
6
+ metadata.gz: b8897628771fe3b47a501c72a488d537e32dc817a0798cf7196158037cc4233f8c57e2ab49cdbe8e1a77cbb357664d1c44a7cddca76533515839a476630a68f0
7
+ data.tar.gz: 6fa4f61b8d08f9eefd92ed02ebdf485fd4b5156633dd308917b97e54d60bae98ac2dd0fd13a274e3f9d7223a0a10b7cec91b857a9f3b71e41c585ad8a31cdeb0
data/README.md CHANGED
@@ -155,8 +155,6 @@ Thus, by hitting the scaffold generator command like this:
155
155
  The following elegant controller code will be generated:
156
156
 
157
157
  ```ruby
158
- # coding: utf-8
159
-
160
158
  class UsersController < ApplicationController
161
159
  before_action :set_user, only: [:show, :edit, :update, :destroy]
162
160
  permits :name, :age, :email
data/Rakefile CHANGED
@@ -11,7 +11,7 @@ end
11
11
  task :default => 'spec:all'
12
12
 
13
13
  namespace :spec do
14
- %w(rails_32 rails_40 rails_41).each do |gemfile|
14
+ %w(rails_32 rails_40 rails_41 rails_42).each do |gemfile|
15
15
  desc "Run Tests against #{gemfile}"
16
16
  task gemfile do
17
17
  sh "BUNDLE_GEMFILE='gemfiles/#{gemfile}.gemfile' bundle --quiet"
@@ -21,7 +21,7 @@ namespace :spec do
21
21
 
22
22
  desc 'Run Tests against all Rails versions'
23
23
  task :all do
24
- %w(rails_32 rails_40 rails_41).each do |gemfile|
24
+ %w(rails_32 rails_40 rails_41 rails_42).each do |gemfile|
25
25
  sh "BUNDLE_GEMFILE='gemfiles/#{gemfile}.gemfile' bundle --quiet"
26
26
  sh "BUNDLE_GEMFILE='gemfiles/#{gemfile}.gemfile' bundle exec rake spec"
27
27
  end
data/lib/action_args.rb CHANGED
@@ -4,7 +4,11 @@ rescue LoadError
4
4
  end
5
5
  require 'action_args/params_handler'
6
6
  require 'action_args/abstract_controller'
7
- require 'action_args/callbacks'
7
+ if ActionArgs.respond_to? :prepend
8
+ require 'action_args/callbacks'
9
+ else
10
+ require 'action_args/legacy/callbacks'
11
+ end
8
12
 
9
13
  module ActionArgs
10
14
  class Railtie < ::Rails::Railtie
@@ -1,13 +1,13 @@
1
- module ActiveSupport
2
- module Callbacks
3
- class Callback
1
+ module ActionArgs
2
+ module ActiveSupport
3
+ module CallbackParameterizer
4
4
  if Rails.version > '4.1'
5
5
  # Extending AS::Callbacks::Callback's `make_lambda` not just to call specified
6
6
  # method but to call the method with method parameters taken from `params`.
7
7
  # This would happen only when
8
8
  # * the filter was defined in Symbol form
9
9
  # * the target object is_a ActionController object
10
- def make_lambda_with_method_parameters(filter)
10
+ def make_lambda(filter)
11
11
  if Symbol === filter
12
12
  lambda do |target, _, &blk|
13
13
  if ActionController::Base === target
@@ -21,13 +21,12 @@ module ActiveSupport
21
21
  end
22
22
  end
23
23
  else
24
- make_lambda_without_method_parameters filter
24
+ super
25
25
  end
26
26
  end
27
- alias_method_chain :make_lambda, :method_parameters
28
27
 
29
28
  elsif Rails.version > '4.0'
30
- def apply_with_method_parameters(code)
29
+ def apply(code)
31
30
  if (Symbol === @filter) && (@klass < ActionController::Base)
32
31
  method_body = <<-FILTER
33
32
  meth = method :#{@filter}
@@ -42,12 +41,11 @@ module ActiveSupport
42
41
  @filter = method_body.chomp
43
42
  end
44
43
  end
45
- apply_without_method_parameters code
44
+ super
46
45
  end
47
- alias_method_chain :apply, :method_parameters
48
46
 
49
47
  else # Rails 3.2
50
- def start_with_method_parameters(key=nil, object=nil)
48
+ def start(key=nil, object=nil)
51
49
  if (Symbol === @filter) && (@klass < ActionController::Base)
52
50
  method_body = <<-FILTER
53
51
  meth = method :#{@filter}
@@ -62,10 +60,17 @@ module ActiveSupport
62
60
  @filter = method_body.chomp
63
61
  end
64
62
  end
65
- start_without_method_parameters key, object
63
+ super
66
64
  end
67
- alias_method_chain :start, :method_parameters
68
65
  end
69
66
  end
70
67
  end
71
68
  end
69
+
70
+ module ActiveSupport
71
+ module Callbacks
72
+ class Callback
73
+ prepend ActionArgs::ActiveSupport::CallbackParameterizer
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,71 @@
1
+ module ActiveSupport
2
+ module Callbacks
3
+ class Callback
4
+ if Rails.version > '4.1'
5
+ # Extending AS::Callbacks::Callback's `make_lambda` not just to call specified
6
+ # method but to call the method with method parameters taken from `params`.
7
+ # This would happen only when
8
+ # * the filter was defined in Symbol form
9
+ # * the target object is_a ActionController object
10
+ def make_lambda_with_method_parameters(filter)
11
+ if Symbol === filter
12
+ lambda do |target, _, &blk|
13
+ if ActionController::Base === target
14
+ meth = target.method filter
15
+ method_parameters = meth.parameters
16
+ ActionArgs::ParamsHandler.strengthen_params!(target.class, method_parameters, target.params)
17
+ values = ActionArgs::ParamsHandler.extract_method_arguments_from_params method_parameters, target.params
18
+ target.send filter, *values, &blk
19
+ else
20
+ target.send filter, &blk
21
+ end
22
+ end
23
+ else
24
+ make_lambda_without_method_parameters filter
25
+ end
26
+ end
27
+ alias_method_chain :make_lambda, :method_parameters
28
+
29
+ elsif Rails.version > '4.0'
30
+ def apply_with_method_parameters(code)
31
+ if (Symbol === @filter) && (@klass < ActionController::Base)
32
+ method_body = <<-FILTER
33
+ meth = method :#{@filter}
34
+ method_parameters = meth.parameters
35
+ ActionArgs::ParamsHandler.strengthen_params!(self.class, method_parameters, params)
36
+ values = ActionArgs::ParamsHandler.extract_method_arguments_from_params method_parameters, params
37
+ send :#{@filter}, *values
38
+ FILTER
39
+ if @kind == :before
40
+ @filter = "begin\n#{method_body}\nend"
41
+ else
42
+ @filter = method_body.chomp
43
+ end
44
+ end
45
+ apply_without_method_parameters code
46
+ end
47
+ alias_method_chain :apply, :method_parameters
48
+
49
+ else # Rails 3.2
50
+ def start_with_method_parameters(key=nil, object=nil)
51
+ if (Symbol === @filter) && (@klass < ActionController::Base)
52
+ method_body = <<-FILTER
53
+ meth = method :#{@filter}
54
+ method_parameters = meth.parameters
55
+ ActionArgs::ParamsHandler.strengthen_params!(self.class, method_parameters, params)
56
+ values = ActionArgs::ParamsHandler.extract_method_arguments_from_params method_parameters, params
57
+ send :#{@filter}, *values
58
+ FILTER
59
+ if @kind == :before
60
+ @filter = "begin\n#{method_body}\nend"
61
+ else
62
+ @filter = method_body.chomp
63
+ end
64
+ end
65
+ start_without_method_parameters key, object
66
+ end
67
+ alias_method_chain :start, :method_parameters
68
+ end
69
+ end
70
+ end
71
+ end
@@ -1,3 +1,3 @@
1
1
  module ActionArgs
2
- VERSION = '1.5.2'.freeze
2
+ VERSION = '1.5.3'
3
3
  end
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  class <%= controller_class_name %>Controller < ApplicationController
4
2
  before_action :set_<%= singular_table_name %>, only: [:show, :edit, :update, :destroy]
5
3
  <% if defined? ActionController::StrongParameters -%>
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: 1.5.2
4
+ version: 1.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Akira Matsuda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-24 00:00:00.000000000 Z
11
+ date: 2015-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,6 +80,7 @@ files:
80
80
  - lib/action_args.rb
81
81
  - lib/action_args/abstract_controller.rb
82
82
  - lib/action_args/callbacks.rb
83
+ - lib/action_args/legacy/callbacks.rb
83
84
  - lib/action_args/params_handler.rb
84
85
  - lib/action_args/version.rb
85
86
  - lib/generators/action_args/rspec/scaffold/scaffold_generator.rb