class Warg::Config::VariableSet::Property

Constants

REGEXP

Public Class Methods

new(name, initial_value = nil) click to toggle source
# File lib/warg.rb, line 1345
def initialize(name, initial_value = nil)
  @name = name
  @initial_value = initial_value
end

Public Instance Methods

extended(variables_set) click to toggle source
# File lib/warg.rb, line 1350
        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