class HyperDock::Resource::Project
Public Instance Methods
attributes()
click to toggle source
# File lib/hyperdock/resource/project.rb, line 51 def attributes { names: services } end
containers()
click to toggle source
# File lib/hyperdock/resource/project.rb, line 13 def containers @containers ||= ::Docker::Container.all.select do |container| container.info.dig('Labels', 'com.docker.compose.project') == project end end
links()
click to toggle source
# File lib/hyperdock/resource/project.rb, line 45 def links @links ||= { services: service_links }.merge(named_links) end
named_links()
click to toggle source
# File lib/hyperdock/resource/project.rb, line 39 def named_links @named_links ||= service_links.map do |service| { "service:#{service[:name]}" => service } end.reduce(&:merge) end
project()
click to toggle source
# File lib/hyperdock/resource/project.rb, line 8 def project @project ||= request.path_info[:project] end
resource_exists?()
click to toggle source
# File lib/hyperdock/resource/project.rb, line 20 def resource_exists? !containers.empty? end
service_links()
click to toggle source
# File lib/hyperdock/resource/project.rb, line 32 def service_links @service_links ||= services.map do |service| { name: service, href: "/project/#{project}/service/#{service}" } end end
services()
click to toggle source
# File lib/hyperdock/resource/project.rb, line 25 def services @services ||= containers.map do |container| container.info.dig('Labels', 'com.docker.compose.service') end.uniq end