Module: Myer::Config

Includes:
XDG::BaseDir::Mixin
Included in:
AdminCliController, CliController
Defined in:
lib/myer/config.rb

Defined Under Namespace

Classes: ServerConfig

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#config_dirObject

Returns the value of attribute config_dir.



9
10
11
# File 'lib/myer/config.rb', line 9

def config_dir
  @config_dir
end

#data_dirObject

Returns the value of attribute data_dir.



9
10
11
# File 'lib/myer/config.rb', line 9

def data_dir
  @data_dir
end

Class Method Details

.define_attribute(name) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/myer/config.rb', line 43

def self.define_attribute(name)
  define_method(name.to_s) do
    return nil if !@config
    @config["servers"][default_server][name.to_s]
  end

  define_method(name.to_s + "=") do |value|
    @config ||= {}
    @config["servers"] ||= {}
    @config["servers"][default_server] ||= {}
    @config["servers"][default_server][name.to_s] = value
  end
end

Instance Method Details

#default_serverObject



39
40
41
# File 'lib/myer/config.rb', line 39

def default_server
  @config["default_server"]
end

#default_server=(value) ⇒ Object



34
35
36
37
# File 'lib/myer/config.rb', line 34

def default_server=(value)
  @config ||= {}
  @config["default_server"] = value
end

#initialize_configObject



11
12
13
14
# File 'lib/myer/config.rb', line 11

def initialize_config
  @config_dir = config.home.to_s
  @data_dir = data.home.to_s
end

#local_csv_path(bucket_id) ⇒ Object



16
17
18
# File 'lib/myer/config.rb', line 16

def local_csv_path(bucket_id)
  File.join(@data_dir, bucket_id + ".csv")
end

#read_configObject



68
69
70
71
72
73
74
75
# File 'lib/myer/config.rb', line 68

def read_config
  config_file = File.join(@config_dir, "myer.config")
  return if !File.exist?(config_file)

  @config = YAML.load_file(config_file)

  @default_server = @config["default_server"]
end

#server(name) ⇒ Object



81
82
83
84
# File 'lib/myer/config.rb', line 81

def server(name)
  return nil if !@config["servers"] || !@config["servers"].has_key?(name)
  ServerConfig.new(@config["servers"][name])
end

#serversObject



77
78
79
# File 'lib/myer/config.rb', line 77

def servers
  @config["servers"].keys
end

#subdirectoryObject



5
6
7
# File 'lib/myer/config.rb', line 5

def subdirectory
  "myer"
end

#write_configObject



63
64
65
66
# File 'lib/myer/config.rb', line 63

def write_config
  FileUtils.mkdir_p(@config_dir)
  File.write(File.join(@config_dir, "myer.config"), @config.to_yaml)
end