Module: SetAttributes::Attribute

Defined in:
lib/set_attributes/attribute.rb

Defined Under Namespace

Classes: Error

Class Method Summary collapse

Class Method Details

.set(receiver, attribute, value, strict: nil) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/set_attributes/attribute.rb', line 5

def self.set(receiver, attribute, value, strict: nil)
  strict = true if strict.nil?

  setter = :"#{attribute}="

  if receiver.respond_to? setter
    receiver.send setter, value
  else
    if strict
      error_msg = "#{receiver} has no setter for #{attribute}"
      raise Error, error_msg
    end
  end

  value
end