module Mcrain

don't require 'redis' here in order to use mcrain without 'redis' gem require 'redis'

don't require 'rabbitmq/http/client' here in order to use mcrain without 'rabbitmq_http_api_client' gem require 'rabbitmq/http/client'

don't require 'redis' here in order to use mcrain without 'redis' gem require 'redis'

Constants

VERSION

Attributes

before_setup[RW]
configuration[W]
home_dir[W]
logger[W]

Public Class Methods

class_for(name) click to toggle source
# File lib/mcrain.rb, line 19
def class_for(name)
  if class_name = class_names[name]
    class_name.constantize
  else
    if klass = Mcrain::Base.descendants.detect{|c| c.server_name == name}
      class_names[name] = klass.name
    end
    klass
  end
end
class_names() click to toggle source
# File lib/mcrain.rb, line 15
def class_names
  @class_names ||= {}
end
configuration() click to toggle source
# File lib/mcrain.rb, line 39
def configuration
  @configuration ||= Mcrain::Configuration.new
end
configure() { |configuration| ... } click to toggle source
# File lib/mcrain.rb, line 43
def configure
  yield configuration
  configuration
end
home_dir() click to toggle source
# File lib/mcrain.rb, line 71
def home_dir
  @home_dir ||= (ENV['MCRAIN_HOME'] || File.join(ENV['HOME'], '.mcrain'))
end
load_config(file) click to toggle source
# File lib/mcrain.rb, line 34
def load_config(file)
  @configuration = Mcrain::Configuration.load_config(file)
end
logger() click to toggle source
# File lib/mcrain.rb, line 49
def logger
  @logger ||= Logger.new($stderr)
end
register(name, class_name) click to toggle source
# File lib/mcrain.rb, line 30
def register(name, class_name)
  class_names[name] = class_name
end
wait_port_opened(host, port, options = {}) click to toggle source
# File lib/mcrain.rb, line 53
def wait_port_opened(host, port, options = {})
  logger.debug("wait_port_opened(#{host.inspect}, #{port.inspect}, #{options.inspect})")
  interval = options[:interval] || 10 # second
  Timeout.timeout(options[:timeout] || 60) do
    begin
      s = TCPSocket.open(host, port)
      s.close
      return true
    rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
      sleep(interval)
      retry
    end
  end
end