module Genome::Resource::ClassMethods

Public Instance Methods

description(description) click to toggle source
# File lib/genome/resource.rb, line 38
def description(description)
  @resource_description = description
end
override_parameter(parameter_name, parameter_options = {}) click to toggle source
# File lib/genome/resource.rb, line 48
def override_parameter(parameter_name, parameter_options = {})
  raise Error::MissingParameterName, "Parameter name not defined '#{parameter_name}'" unless parameters.key?(parameter_name)

  parameters[parameter_name].parameter_options.merge!(parameter_options)
end
parameter(parameter_name, parameter_options = {}) click to toggle source
# File lib/genome/resource.rb, line 42
def parameter(parameter_name, parameter_options = {})
  raise Error::DuplicateParameter, "Duplicate parameter name defined '#{parameter_name}'" if parameters.key?(parameter_name)

  parameters[parameter_name] = Parameter.new(parameter_name: parameter_name, parameter_options: parameter_options)
end
reference(resource_name) click to toggle source
# File lib/genome/resource.rb, line 75
def reference(resource_name)
  Reference.new(resource_name)
end
remove_dependencies(*dependencies) click to toggle source
# File lib/genome/resource.rb, line 67
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) click to toggle source
# File lib/genome/resource.rb, line 33
def remove_template(template_name)
  templates.delete(template_name)
  remove_dependencies(template_name)
end
shared_tags(*tags) click to toggle source
# File lib/genome/resource.rb, line 54
def shared_tags(*tags)
  templates.each do |template_name, template|
    tag(template_name, *tags) if template[:klass].property_configs.key?(:Tags)
  end
end
tag(template_name, *tags) click to toggle source
# File lib/genome/resource.rb, line 60
def tag(template_name, *tags)
  template = templates[template_name]

  template[:properties][:Tags] ||= []
  template[:properties][:Tags].concat(tags)
end
template(template_name, template_klass, template_properties) click to toggle source
# File lib/genome/resource.rb, line 21
def template(template_name, template_klass, template_properties)
  raise Error::DuplicateTemplate, "Duplicate template name defined '#{template_name}'" if templates.key?(template_name)

  dependencies = template_properties.delete(:DependsOn)

  templates[template_name] = {
    klass: template_klass,
    properties: template_properties,
    dependencies: dependencies,
  }
end