Class: Warg::Config::VariableSet::Property

Inherits:
Module
  • Object
show all
Defined in:
lib/warg.rb

Constant Summary collapse

REGEXP =
/^[A-Za-z_]+$/

Instance Method Summary collapse

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 "    attr_writer :\#{@name}\n\n    def \#{@name}(&block)\n      if block.nil?\n        value = instance_variable_get(:@\#{@name})\n\n        if value.respond_to?(:to_proc)\n          instance_eval(&value)\n        else\n          value\n        end\n      else\n        instance_variable_set(:@\#{@name}, block)\n      end\n    end\n  PROPERTY_METHODS\n\n  variables_set.instance_variable_set(\"@\#{@name}\", @initial_value)\nend\n"