class Tdc::Generators::StandardGenerator
Knows how to provide a configurable instance definition.
Attributes
instance_definition[R]
Public Instance Methods
generate()
click to toggle source
# File lib/tdc/generators/standard_generator.rb, line 13 def generate CatalogEntries.new.tap do |catalog_entries| instance_definitions.each do |instance_definition| configure_instance_definition(instance_definition) # Delete the tag so that the models do not need to filter it out. tag = instance_definition.delete("tag") generated = run_resolvers_and_generate_instance # Add generated instance to the catalog entries whenever a tag provided. catalog_entries.add_catalog_entry(tag, generated) if tag end end end
generate_instance()
click to toggle source
Hook method: subclasses are expected to define how to generate a model instance.
# File lib/tdc/generators/standard_generator.rb, line 39 def generate_instance raise Tdc::MissingOverrideError, "Implement the 'generate_instance' method" end
run_definition_resolvers(_instance_definition)
click to toggle source
Hook method: subclasses may include the DefinitionResolvable
concern to override.
# File lib/tdc/generators/standard_generator.rb, line 46 def run_definition_resolvers(_instance_definition) # Do nothing end
run_resolvers_and_generate_instance()
click to toggle source
# File lib/tdc/generators/standard_generator.rb, line 29 def run_resolvers_and_generate_instance run_extended_attribute_interpreters(instance_definition) run_definition_resolvers(instance_definition) generate_instance end
Private Instance Methods
configure_instance_definition(instance_definition)
click to toggle source
# File lib/tdc/generators/standard_generator.rb, line 52 def configure_instance_definition(instance_definition) @instance_definition = instance_definition configure_definition_source(instance_definition) end
interpreters()
click to toggle source
# File lib/tdc/generators/standard_generator.rb, line 62 def interpreters Tdc::ExtendedAttributes::InterpreterRegistry.instance.interpreters end
run_extended_attribute_interpreters(instance_definition)
click to toggle source
# File lib/tdc/generators/standard_generator.rb, line 58 def run_extended_attribute_interpreters(instance_definition) interpreters.each { |interpreter| interpreter.interpret(instance_definition) } end