Module: Settings::Setting::Assignment
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
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
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
|