Class: LitmusPaper::ConfigurationFile

Inherits:
Object
  • Object
show all
Defined in:
lib/litmus_paper/configuration_file.rb

Instance Method Summary collapse

Constructor Details

#initialize(config_file_path) ⇒ ConfigurationFile

Returns a new instance of ConfigurationFile.



3
4
5
6
7
8
9
10
# File 'lib/litmus_paper/configuration_file.rb', line 3

def initialize(config_file_path)
  @config_file_path = config_file_path
  @services = {}
  @port = 9292
  @data_directory = "/etc/litmus"
  @cache_location = "/run/shm"
  @cache_ttl = -1
end

Instance Method Details

#cache_location(location) ⇒ Object



48
49
50
# File 'lib/litmus_paper/configuration_file.rb', line 48

def cache_location(location)
  @cache_location = location
end

#cache_ttl(ttl) ⇒ Object



52
53
54
# File 'lib/litmus_paper/configuration_file.rb', line 52

def cache_ttl(ttl)
  @cache_ttl = ttl
end

#data_directory(directory) ⇒ Object



38
39
40
# File 'lib/litmus_paper/configuration_file.rb', line 38

def data_directory(directory)
  @data_directory = directory
end

#evaluate(file = @config_file_path) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/litmus_paper/configuration_file.rb', line 12

def evaluate(file = @config_file_path)
  LitmusPaper.logger.info "Loading file #{file}"
  config_contents = File.read(file)
  instance_eval(config_contents)
  LitmusPaper::Configuration.new(
    @port,
    @data_directory,
    @services,
    @cache_location,
    @cache_ttl
  )
end

#include_files(glob_pattern) ⇒ Object



25
26
27
28
29
30
31
32
# File 'lib/litmus_paper/configuration_file.rb', line 25

def include_files(glob_pattern)
  full_glob_pattern = File.expand_path(glob_pattern, File.dirname(@config_file_path))
  LitmusPaper.logger.info "Searching for files matching: #{full_glob_pattern}"

  Dir.glob(full_glob_pattern).each do |file|
    evaluate(file)
  end
end

#port(port) ⇒ Object



34
35
36
# File 'lib/litmus_paper/configuration_file.rb', line 34

def port(port)
  @port = port
end

#service(name, &block) ⇒ Object



42
43
44
45
46
# File 'lib/litmus_paper/configuration_file.rb', line 42

def service(name, &block)
  service = Service.new(name.to_s)
  block.call(service)
  @services[name.to_s] = service
end