module Genesis::Framework::Utils

Public Class Methods

collins() click to toggle source
# File lib/genesisframework/utils.rb, line 27
def self.collins
  if @@collins_conn.nil?
    cfg = { :host => self.config_cache['collins']['host'], :username => self.config_cache['collins']['username'], :password => self.config_cache['collins']['password'] }
    @@collins_conn = ::Collins::Client.new(cfg)
  end

  @@collins_conn
end
config_cache() click to toggle source

mimicking rail's cattr_accessor

# File lib/genesisframework/utils.rb, line 19
def self.config_cache
  @@config_cache
end
config_cache=(obj) click to toggle source
# File lib/genesisframework/utils.rb, line 23
def self.config_cache= (obj)
  @@config_cache = obj
end
facter() click to toggle source
# File lib/genesisframework/utils.rb, line 36
def self.facter
  if config_cache.fetch(:facter_cache, true)
    Facter.to_hash
  else
    if @@facter.nil?
      @@facter = Facter.to_hash
    end

    @@facter
  end
end
log(subsystem, message) click to toggle source
# File lib/genesisframework/utils.rb, line 48
def self.log subsystem, message
  logline = subsystem.to_s + " :: " + message
  puts logline

  # Load external logging modules and send log to them
  if @@loggers.nil?
    @@loggers = self.config_cache[:loggers].map {|logger|
      begin
        require "logging/#{logger.downcase}"
        Logging.const_get(logger.to_sym)
      rescue LoadError
        puts "Could not load logger #{logger}"
      end
    }.compact
  end
  @@loggers.each {|logger| logger.log logline}
end
tmp_path(filename, sandbox = "") click to toggle source
# File lib/genesisframework/utils.rb, line 7
def self.tmp_path filename, sandbox = ""
  location = File.join(ENV['GENESIS_ROOT'], "tmp", sandbox)
  Dir.mkdir(location, 0755) unless File.directory? location
  File.join(location, filename)
end