Class: Guard::Bosh::JobRepository

Inherits:
Object
  • Object
show all
Defined in:
lib/guard/bosh/job_repository.rb

Overview

Wraps access to manifest jobs and templates

Instance Method Summary collapse

Constructor Details

#initialize(deployment_manifest) ⇒ JobRepository

Returns a new instance of JobRepository.



8
9
10
# File 'lib/guard/bosh/job_repository.rb', line 8

def initialize(deployment_manifest)
  @manifest = deployment_manifest
end

Instance Method Details

#find_by_template(job) ⇒ Object



16
17
18
19
20
21
# 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_templatesObject



12
13
14
# 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) ⇒ Object



23
24
25
26
27
28
# 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