Module: Genome::Resource::ClassMethods

Defined in:
lib/genome/resource.rb

Instance Method Summary collapse

Instance Method Details

#reference(resource_name) ⇒ Object



44
45
46
# File 'lib/genome/resource.rb', line 44

def reference(resource_name)
  Reference.new(resource_name)
end

#remove_dependencies(*dependencies) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/genome/resource.rb', line 36

def remove_dependencies(*dependencies)
  templates.each do |template_name, template_parameters|
    dependencies.each do |dependency|
      template_parameters[:dependencies]&.delete(dependency)
    end
  end
end

#remove_template(template_name) ⇒ Object



31
32
33
34
# File 'lib/genome/resource.rb', line 31

def remove_template(template_name)
  templates.delete(template_name)
  remove_dependencies(template_name)
end

#template(template_name, template_klass, template_parameters) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/genome/resource.rb', line 19

def template(template_name, template_klass, template_parameters)
  raise Error::DuplicateTemplate, "Duplicate template name defined '#{template_name}'" if self.templates.key?(template_name)

  dependencies = template_parameters.delete(:DependsOn)

  templates[template_name] = {
    klass: template_klass,
    parameters: template_parameters,
    dependencies: dependencies,
  }
end