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