Module: Settings::Setting::Assignment
Defined Under Namespace
Modules: Attribute, Object
Instance Method Summary
collapse
Instance Method Details
#assign(receiver, attribute, value, strict = false) ⇒ Object
10
11
12
13
14
15
16
17
|
# File 'lib/settings/setting/assignment.rb', line 10
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
19
20
21
22
23
24
25
|
# File 'lib/settings/setting/assignment.rb', line 19
def assign_value(receiver, attribute, value)
logger.trace { "Assigning to #{attribute}" }
receiver.public_send("#{attribute}=", value).tap do
logger.debug { "Assigned to #{attribute}" }
logger.debug(tag: :data) { "#{attribute}: #{value}" }
end
end
|
#assignable?(receiver, attribute) ⇒ Boolean
32
33
34
|
# File 'lib/settings/setting/assignment.rb', line 32
def assignable?(receiver, attribute)
receiver.respond_to? setter_name(attribute)
end
|
#digest(receiver, attribute, strict) ⇒ Object
40
41
42
43
44
45
46
47
|
# File 'lib/settings/setting/assignment.rb', line 40
def digest(receiver, attribute, strict)
content = []
content << "Attribute: #{attribute}" if attribute
content << "Receiver: #{receiver.class.name}"
strict = "<not set>" if strict.nil?
content << "Strict: #{strict}"
content.join ', '
end
|
6
7
8
|
# File 'lib/settings/setting/assignment.rb', line 6
def logger
@logger ||= Log.get(self)
end
|
#setter_name(attribute) ⇒ Object
36
37
38
|
# File 'lib/settings/setting/assignment.rb', line 36
def setter_name(attribute)
:"#{attribute.to_s}=" unless attribute.to_s.end_with? '='
end
|
#setting?(receiver, attribute) ⇒ Boolean
27
28
29
30
|
# File 'lib/settings/setting/assignment.rb', line 27
def setting?(receiver, attribute)
receiver_class = receiver.class
Settings::Registry.instance.setting? receiver_class, attribute
end
|