class Picobox::Services::Manifest

Attributes

os[R]
type[R]

Public Class Methods

new(os, type = nil) click to toggle source
# File lib/picobox/services/manifest.rb, line 4
def initialize(os, type = nil)
  @os, @type = os, type
end

Public Instance Methods

check!() click to toggle source
# File lib/picobox/services/manifest.rb, line 19
def check!
  (raise Errors::ServiceNotImplemented, type) unless list.include?(type)
end
docker_compose_file() click to toggle source
# File lib/picobox/services/manifest.rb, line 23
def docker_compose_file () "#{os.project_root}/docker-compose.yml" end
list() click to toggle source
# File lib/picobox/services/manifest.rb, line 8
def list
  result = Dir.glob("#{os.service_packages_dir}/*").select {|f| File.directory? f}
  result.map {|r| strip_path(r) }.sort!
end
package_contents() click to toggle source
# File lib/picobox/services/manifest.rb, line 14
def package_contents
  @package_contents ||= Dir.glob(File.join(service, "*"))
end
post_install_instructions() click to toggle source
# File lib/picobox/services/manifest.rb, line 28
def post_install_instructions() slice(package, 'instructions')['instructions'] end
service() click to toggle source
# File lib/picobox/services/manifest.rb, line 26
def service ()                  slice(package, service_name) end
service_name() click to toggle source
# File lib/picobox/services/manifest.rb, line 24
def service_name()         (package.keys - ['links', 'instructions']).first end

Private Instance Methods

package() click to toggle source
# File lib/picobox/services/manifest.rb, line 33
def package
  @package ||= YAML.load_file("#{package_dir}/config.yml")
end
package_dir() click to toggle source
# File lib/picobox/services/manifest.rb, line 37
def package_dir
  "#{os.service_packages_dir}/#{type}"
end
slice(hash, *keys) click to toggle source
# File lib/picobox/services/manifest.rb, line 45
def slice(hash, *keys)
  Hash[ [keys, hash.values_at(*keys)].transpose]
end
strip_path(file) click to toggle source
# File lib/picobox/services/manifest.rb, line 41
def strip_path(file)
  file.split('/').last
end