class LazyAnt::Config

Attributes

connection_callbacks[R]

Public Class Methods

accessor_methods(name) click to toggle source
# File lib/lazy_ant/config.rb, line 60
def accessor_methods(name)
  attr = name.to_s.gsub(/[!\?]$/, '')
  var = "@#{attr}".to_sym
  ["#{attr}=".to_sym, name.to_sym, var, name[-1] == '?']
end
define_reader(reader, var, _options = {}) click to toggle source
# File lib/lazy_ant/config.rb, line 50
def define_reader(reader, var, _options = {})
  define_method reader do
    instance_variable_get(var)
  end
end
define_writer(writer, var, options = {}) click to toggle source
# File lib/lazy_ant/config.rb, line 42
def define_writer(writer, var, options = {})
  define_method writer do |val|
    deprecated writer, options[:deprecated] if options[:deprecated]
    validate(val) if options[:question]
    instance_variable_set(var, val)
  end
end
key(name, options = {}) click to toggle source
# File lib/lazy_ant/config.rb, line 33
def key(name, options = {})
  writer, reader, var, question = accessor_methods(name)
  options[:question] = question
  keys[var] = options

  define_writer(writer, var, options)
  define_reader(reader, var, options)
end
keys() click to toggle source
# File lib/lazy_ant/config.rb, line 56
def keys
  @keys ||= {}
end
new() click to toggle source
# File lib/lazy_ant/config.rb, line 5
def initialize
  self.class.keys.each do |var, options|
    instance_variable_set(var, options[:default])
  end
  @connection_callbacks = []
end

Public Instance Methods

deprecated(method, instead) click to toggle source
# File lib/lazy_ant/config.rb, line 12
def deprecated(method, instead)
  msg = "config.#{method} is deprecated"
  if instead.is_a?(Symbol)
    writer, = self.class.accessor_methods(instead)
    msg += ", use config.#{writer}"
  end
  warn msg
end
logger(instance = nil, options = {}) click to toggle source
# File lib/lazy_ant/config.rb, line 25
def logger(instance = nil, options = {})
  @connection_callbacks << lambda do |con|
    args = [:logger, instance, options].compact
    con.send(:response, *args)
  end
end
validate(val) click to toggle source
# File lib/lazy_ant/config.rb, line 21
def validate(val)
  raise ArgumentError unless val == true || val == false
end