Class: SequenceServer::Config

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/sequenceserver/config.rb

Overview

Capture our configuration system.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data = {}) ⇒ Config

Returns a new instance of Config.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/sequenceserver/config.rb', line 12

def initialize(data = {})
  @data = normalize data

  @config_file = @data.delete(:config_file)
  if @config_file
    @config_file = File.expand_path(@config_file)
    @data = parse_config_file.deep_merge @data
  end

  @data = defaults.deep_merge @data

  return unless @upgraded

  logger.info 'You are using old configuration syntax. ' \
              'Run `sequenceserver -s` to update your config file syntax.'
end

Instance Attribute Details

#config_fileObject (readonly)

Returns the value of attribute config_file.



29
30
31
# File 'lib/sequenceserver/config.rb', line 29

def config_file
  @config_file
end

#dataObject (readonly)

Returns the value of attribute data.



29
30
31
# File 'lib/sequenceserver/config.rb', line 29

def data
  @data
end

Instance Method Details

#[](key) ⇒ Object

Get.



32
33
34
# File 'lib/sequenceserver/config.rb', line 32

def [](key)
  data[key]
end

#[]=(key, value) ⇒ Object

Set.



37
38
39
# File 'lib/sequenceserver/config.rb', line 37

def []=(key, value)
  data[key] = value
end

#include?(key) ⇒ Boolean

Exists?

Returns:

  • (Boolean)


42
43
44
# File 'lib/sequenceserver/config.rb', line 42

def include?(key)
  data.include? key
end

#write_config_fileObject

Write config data to config file.



47
48
49
50
51
52
53
# File 'lib/sequenceserver/config.rb', line 47

def write_config_file
  return unless config_file

  File.open(config_file, 'w') do |f|
    f.puts(data.delete_if { |_, v| v.nil? }.to_yaml)
  end
end