Module: Settings::Setting::Assignment

Extended by:
Assignment
Included in:
Assignment, Attribute, Object
Defined in:
lib/settings/setting/assignment.rb

Defined Under Namespace

Modules: Attribute, Object

Instance Method Summary collapse

Instance Method Details

#assign(receiver, attribute, value, strict = false) ⇒ Object



6
7
8
9
10
11
12
13
# File 'lib/settings/setting/assignment.rb', line 6

def assign(receiver, attribute, value, strict=false)
  settable = assure_settable(receiver, attribute, strict)
  if settable
    assign_value(receiver, attribute, value)
  end

  receiver
end

#assign_value(receiver, attribute, value) ⇒ Object



15
16
17
# File 'lib/settings/setting/assignment.rb', line 15

def assign_value(receiver, attribute, value)
  receiver.public_send("#{attribute}=", value)
end

#assignable?(receiver, attribute) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/settings/setting/assignment.rb', line 24

def assignable?(receiver, attribute)
  receiver.respond_to? setter_name(attribute)
end

#setter_name(attribute) ⇒ Object



28
29
30
# File 'lib/settings/setting/assignment.rb', line 28

def setter_name(attribute)
  :"#{attribute.to_s}=" unless attribute.to_s.end_with? '='
end

#setting?(receiver, attribute) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
# File 'lib/settings/setting/assignment.rb', line 19

def setting?(receiver, attribute)
  receiver_class = receiver.class
  Settings::Registry.instance.setting? receiver_class, attribute
end