Sha256: b01f701a94bf14d2459b778a9f46d5f14ef66b6dee3f7422078ea9397901ea9e

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

# frozen_string_literal: true
require_relative 'params_handler'
using ActionArgs::ParamsHandler

module ActionArgs
  module AbstractControllerMethods
    def send_action(method_name, *args)
      return super unless args.empty?
      return super unless defined?(params)

      strengthen_params! method_name
      values = extract_method_arguments_from_params method_name
      super method_name, *values
    end
  end

  module AbstractControllerClassMethods
    # You can configure StrongParameters' `permit` attributes using this DSL method.
    # The `permit` call will be invoked only against parameters having the resource
    # model name inferred from the controller class name.
    #
    #   class UsersController < ApplicationController
    #     permits :name, :age
    #
    #     def create(user)
    #       @user = User.new(user)
    #     end
    #   end
    #
    def permits(*attributes, model_name: nil)
      @permitted_attributes, @permitting_model_name = attributes, model_name
    end
  end
end

AbstractController::Base.send :prepend, ActionArgs::AbstractControllerMethods
AbstractController::Base.singleton_class.send :include, ActionArgs::AbstractControllerClassMethods

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
action_args-2.2.0 lib/action_args/abstract_controller.rb