Sha256: eacf64c02c770d9114b7c570672095723976cf0cadee9d99c948ba158ef70ba8
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
# frozen_string_literal: true module ConvenientService module Common module Plugins module AssignsAttributesInConstructor module UsingActiveModelAttributeAssignment class Middleware < Core::MethodChainMiddleware ## # @param args [Array<Object>] # @param kwargs [Hash{Symbol => Object}] # @param block [Proc, nil] # @return [void] # # @internal # TODO: Consider creation of a plugin that assigns `*args` with `assign_attributes` as well, not only `**kwargs`. # Check `Method#parameters` for a possible solution. # - https://ruby-doc.org/core-3.1.0/Method.html#method-i-parameters # # NOTE: `assign_attributes` expects `attr_writer` for all `kwargs` keys. # - https://api.rubyonrails.org/classes/ActiveModel/AttributeAssignment.html#method-i-assign_attributes # def next(*args, **kwargs, &block) chain.next(*args, **kwargs, &block) entity.assign_attributes(kwargs) end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
convenient_service-0.12.0 | lib/convenient_service/common/plugins/assigns_attributes_in_constructor/using_active_model_attribute_assignment/middleware.rb |