Module: ClearObject
- Defined in:
- lib/clear_object.rb,
lib/clear_object/version.rb,
lib/clear_object/attribute.rb,
lib/clear_object/attribute_set.rb
Defined Under Namespace
Classes: Attribute, AttributeSet, Error
Constant Summary
collapse
- VERSION =
"0.1.0"
Instance Method Summary
collapse
Instance Method Details
#clear(*attributes, default: nil, **opts, &block) ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/clear_object.rb', line 9
def clear(*attributes, default: nil, **opts, &block)
attributes.each do |c_attr|
attr_reader c_attr
if block_given?
klass = Class.new do
extend ClearObject
class_eval(&block)
end
Object.const_set((opts[:clear_name] || c_attr).to_s.capitalize, klass)
end
clear_attributes << Attribute.new(name: c_attr, default: default)
end
class_eval(custom_initialize_def)
end
|
#clear_get_default_for(name) ⇒ Object
27
28
29
30
31
32
33
34
|
# File 'lib/clear_object.rb', line 27
def clear_get_default_for(name)
value = clear_attributes.detect { |c_attr| c_attr.name == name }.default
if value.respond_to?(:call)
value.call
else
value
end
end
|