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
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