class Guard::Bosh::JobRepository

Wraps access to manifest jobs and templates

Public Class Methods

new(deployment_manifest) click to toggle source
# File lib/guard/bosh/job_repository.rb, line 8
def initialize(deployment_manifest)
  @manifest = deployment_manifest
end

Public Instance Methods

find_by_template(job) click to toggle source
# File lib/guard/bosh/job_repository.rb, line 16
def find_by_template(job)
  jobs_using_template = @manifest['jobs'].select do |manifest_job|
    template_names(manifest_job).include?(job)
  end
  jobs_using_template.map { |j| j['name'] }
end
job_templates() click to toggle source
# File lib/guard/bosh/job_repository.rb, line 12
def job_templates
  @manifest['jobs'].flat_map { |j| template_names(j) }.sort.uniq
end
template_paths(job) click to toggle source
# File lib/guard/bosh/job_repository.rb, line 23
def template_paths(job)
  job_dir = Pathname.new('jobs') + job
  YAML.load_file(job_dir + 'spec')['templates'].keys.map do |template|
    job_dir + 'templates' + template
  end
end

Private Instance Methods

template_names(manifest_job) click to toggle source
# File lib/guard/bosh/job_repository.rb, line 32
def template_names(manifest_job)
  if manifest_job.key?('templates')
    manifest_job['templates'].map { |t| t['name'] }
  else
    Array(manifest_job['template'])
  end
end