Class: AutoAttrInit::AssignParams
- Inherits:
-
Object
- Object
- AutoAttrInit::AssignParams
- Defined in:
- lib/auto_attr_init/assign_params.rb
Instance Method Summary collapse
-
#assign(args, params) ⇒ Hash
{ param name => value }.
-
#initialize(object) ⇒ AssignParams
constructor
A new instance of AssignParams.
Constructor Details
#initialize(object) ⇒ AssignParams
Returns a new instance of AssignParams.
8 9 10 |
# File 'lib/auto_attr_init/assign_params.rb', line 8 def initialize object @object = object end |
Instance Method Details
#assign(args, params) ⇒ Hash
Returns { param name => value }.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/auto_attr_init/assign_params.rb', line 15 def assign args, params param_args = {} key_params, params = *params.partition{|param| [:key, :keyrest].include? param[0] } unless key_params.empty? key_args = args.last.is_a?(Hash) ? args.pop : {} param_args = param_args.merge assign_key_params(key_args, key_params) end if params.any?{|param| param[0] == :rest } param_args = param_args.merge assign_rest_params(args, params) else param_args = param_args.merge assign_req_params(args, params) end param_args end |