Class: Warg::Config::VariableSet::Property
- Inherits:
-
Module
- Object
- Module
- Warg::Config::VariableSet::Property
- Defined in:
- lib/warg.rb
Constant Summary collapse
- REGEXP =
/^[A-Za-z_]+$/
Instance Method Summary collapse
- #extended(variables_set) ⇒ Object
-
#initialize(name, initial_value = nil) ⇒ Property
constructor
A new instance of Property.
Constructor Details
#initialize(name, initial_value = nil) ⇒ Property
Returns a new instance of Property.
1398 1399 1400 1401 |
# File 'lib/warg.rb', line 1398 def initialize(name, initial_value = nil) @name = name @initial_value = initial_value end |
Instance Method Details
#extended(variables_set) ⇒ Object
1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 |
# File 'lib/warg.rb', line 1403 def extended(variables_set) variables_set.define! @name variables_set.singleton_class.class_eval <<-PROPERTY_METHODS attr_writer :#{@name} def #{@name}(&block) if block.nil? value = instance_variable_get(:@#{@name}) if value.respond_to?(:to_proc) instance_eval(&value) else value end else instance_variable_set(:@#{@name}, block) end end PROPERTY_METHODS variables_set.instance_variable_set("@#{@name}", @initial_value) end |