class Rubycon::Config

Attributes

path[R]
servers[R]

Public Class Methods

load(path) click to toggle source
# File lib/rubycon/config.rb, line 17
def self.load(path)
  Config.new path
end
new(path) click to toggle source
# File lib/rubycon/config.rb, line 5
def initialize(path)
  @servers = []
  @path = path

  if File.exists?(path)
    yaml = YAML.load_file(path)
    yaml.each do |server|
      @servers << server
    end
  end
end

Public Instance Methods

add_server(server) click to toggle source
# File lib/rubycon/config.rb, line 30
def add_server(server)
  raise ConfigError, "ALIAS #{server.name} already used." if find_by_name server.name
  @servers << server
  save
end
delete_all_servers() click to toggle source
# File lib/rubycon/config.rb, line 36
def delete_all_servers
  @servers = []
  save
end
delete_server(name) click to toggle source
# File lib/rubycon/config.rb, line 41
def delete_server(name)
  deleted_server = @servers.delete(find_by_name(name))
  save
  deleted_server
end
find_by_host_and_port(address, port) click to toggle source
# File lib/rubycon/config.rb, line 51
def find_by_host_and_port(address, port)
  @servers.find {|server| port == server.port and server.address.downcase == address.downcase}
end
find_by_name(name) click to toggle source
# File lib/rubycon/config.rb, line 47
def find_by_name(name)
  @servers.find {|server| name.downcase == server.name.downcase}
end
save() click to toggle source
# File lib/rubycon/config.rb, line 21
def save
  FileUtils.makedirs File.dirname(@path)

  servers.sort! {|a,b| a.name.downcase <=> b.name.downcase}
  File.open(path, 'w') do |f|
    f.puts servers.to_yaml
  end
end