module Conekticut::Client::Configuration::ClassMethods

Public Instance Methods

add_config_option(name, default_value = "nil") click to toggle source
# File lib/conekticut/client/configuration.rb, line 17
        def add_config_option(name, default_value = "nil")
          class_eval <<-RUBY
            def self.#{name}(value=#{default_value})
              @#{name} = value if value
              return @#{name} if self.object_id == #{self.object_id} || defined?(@#{name})
              name = superclass.#{name}
              return nil if name.nil? && !instance_variable_defined?("@#{name}")
              @#{name} = name && !name.is_a?(Module) && !name.is_a?(Symbol) && !name.is_a?(Numeric) && !name.is_a?(TrueClass) && !name.is_a?(FalseClass) ? name.dup : name
            end

            def self.#{name}=(value)
              @#{name} = value
            end

            def #{name}=(value)
              @#{name} = value
            end

            def #{name}
              value = @#{name} if instance_variable_defined?(:@#{name})
              value = self.class.#{name} unless instance_variable_defined?(:@#{name})
              if value.instance_of?(Proc)
                value.arity >= 1 ? value.call(self) : value.call
              else
                value
              end
            end
          RUBY
        end
configure() { |self| ... } click to toggle source
# File lib/conekticut/client/configuration.rb, line 47
def configure
  yield self
end