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.
1318 1319 1320 1321 |
# File 'lib/warg.rb', line 1318 def initialize(name, initial_value = nil) @name = name @initial_value = initial_value end |
Instance Method Details
#extended(variables_set) ⇒ Object
1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 |
# File 'lib/warg.rb', line 1323 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 |