class Pixiebox::DockerCompose::Config
Attributes
config[RW]
filename[RW]
package[RW]
Public Class Methods
new(filename)
click to toggle source
# File lib/pixiebox/docker_compose/config.rb, line 4 def initialize(filename) @config = YAML.load_file(filename) @filename = filename rescue SystemCallError raise Pixiebox::Errors::FileNotFoundError, "could not open #{filename}" end
Public Instance Methods
add_service(service, links)
click to toggle source
# File lib/pixiebox/docker_compose/config.rb, line 19 def add_service(service, links) service_name = service.keys.first services = config['services'].merge! service links.each do |link| existing_service = services[link] if existing_service existing_service['links'] = (existing_service['links'] || Array.new).push service_name existing_service['links'].uniq! end end end
check!(type)
click to toggle source
# File lib/pixiebox/docker_compose/config.rb, line 12 def check!(type) unless config['services'].keys.include? type raise Pixiebox::Errors::ServiceNotInstalled end end
remove_service(service)
click to toggle source
# File lib/pixiebox/docker_compose/config.rb, line 34 def remove_service(service) service_name = service.keys.first services = config['services'] services.delete(service_name) services.each_value do |service| if service['links'] service['links'].delete(service_name) service.delete('links') if service['links'].empty? end end end
save()
click to toggle source
# File lib/pixiebox/docker_compose/config.rb, line 49 def save File.open(filename,'w') do |h| h.write config.to_yaml end end