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.



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 "    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"