class Mebla::Configuration
Parses the configuration file and holds important configuration attributes
Attributes
host[RW]
index[RW]
log_dir[R]
logger[RW]
port[RW]
Public Class Methods
new()
click to toggle source
@private Initializes a new configuration object
# File lib/mebla/configuration.rb, line 15 def initialize @log_dir = "#{Dir.pwd}/tmp/log" parse_config # Setup defaults @index ||= "mebla" @host ||= "localhost" @port ||= 9200 make_tmp_dir @logger = ActiveSupport::BufferedLogger.new( open("#{@log_dir}/mebla.log", "a") ) @logger.level = ActiveSupport::BufferedLogger::Severity::DEBUG setup_logger # Setup slingshot Slingshot::Configuration.url(self.url) end
Public Instance Methods
setup_logger()
click to toggle source
Sets up the default settings of the logger @return [nil]
# File lib/mebla/configuration.rb, line 38 def setup_logger @logger.auto_flushing = true end
url()
click to toggle source
Returns the proper url for elasticsearch @return [String] url representation of the configuration options host and port
# File lib/mebla/configuration.rb, line 44 def url "http://#{@host}:#{@port}" end
Private Instance Methods
make_tmp_dir()
click to toggle source
Creates tmp directory if it doesn’t exist @return [nil]
# File lib/mebla/configuration.rb, line 51 def make_tmp_dir FileUtils.mkdir_p @log_dir Dir["#{@log_dir}/*"].each do |file| FileUtils.rm_rf file end end
parse_config()
click to toggle source
Loads the configuration file @return [nil]
# File lib/mebla/configuration.rb, line 60 def parse_config path = "#{Rails.root}/config/mebla.yml" return unless File.exists?(path) conf = YAML::load(ERB.new(IO.read(path)).result)[Rails.env] conf.each do |key,value| self.send("#{key}=", value) if self.respond_to?("#{key}=") end unless conf.nil? end