module SmoothOperator::AttributeAssignment

Attributes

_meta_data[R]
_options[R]

Public Class Methods

new(attributes = {}, options = {}) click to toggle source
# File lib/smooth_operator/attribute_assignment.rb, line 4
def initialize(attributes = {}, options = {})
  @_options = {}

  before_initialize(attributes, options)

  assign_attributes(attributes, options)

  after_initialize(attributes, options)
end

Public Instance Methods

assign_attributes(attributes = {}, options = {}) click to toggle source
# File lib/smooth_operator/attribute_assignment.rb, line 16
def assign_attributes(attributes = {}, options = {})
  attributes = _extract_attributes(attributes)

  return nil unless attributes.is_a?(Hash)

  induce_errors(attributes.delete(self.class.errors_key))

  @_options.merge!(options) if options.is_a? Hash

  attributes.each do |name, value|
    next unless allowed_attribute(name)

    send("#{name}=", value)
  end
end