Module: Genome::Resource::ClassMethods
- Defined in:
- lib/genome/resource.rb
Instance Method Summary collapse
- #reference(resource_name) ⇒ Object
- #remove_dependencies(*dependencies) ⇒ Object
- #remove_template(template_name) ⇒ Object
- #template(template_name, template_klass, template_parameters) ⇒ Object
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 |