Class: Tdc::Generators::StandardGenerator
- Inherits:
-
GeneratorBase
- Object
- GeneratorBase
- Tdc::Generators::StandardGenerator
- Includes:
- DefinitionSourcable
- Defined in:
- lib/tdc/generators/standard_generator.rb
Overview
Knows how to provide a configurable instance definition.
Instance Attribute Summary collapse
-
#instance_definition ⇒ Object
readonly
Returns the value of attribute instance_definition.
Attributes inherited from GeneratorBase
Instance Method Summary collapse
- #generate ⇒ Object
-
#generate_instance ⇒ Object
Hook method: subclasses are expected to define how to generate a model instance.
-
#run_definition_resolvers(_instance_definition) ⇒ Object
Hook method: subclasses may include the DefinitionResolvable concern to override.
- #run_resolvers_and_generate_instance ⇒ Object
- #run_resolvers_and_update_instance(existing_record) ⇒ Object
-
#update_instance(existing_record) ⇒ Object
Hook method: subclasses may override to customize update behavior for existing records.
Methods included from DefinitionSourcable
Methods inherited from GeneratorBase
#initialize, #instance_definitions
Constructor Details
This class inherits a constructor from Tdc::Generators::GeneratorBase
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Tdc::Generators::DefinitionSourcable
Instance Attribute Details
#instance_definition ⇒ Object (readonly)
Returns the value of attribute instance_definition.
11 12 13 |
# File 'lib/tdc/generators/standard_generator.rb', line 11 def instance_definition @instance_definition end |
Instance Method Details
#generate ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/tdc/generators/standard_generator.rb', line 15 def generate CatalogEntries.new.tap do |catalog_entries| instance_definitions.each do |instance_definition| generate_or_update(instance_definition, catalog_entries) end end end |
#generate_instance ⇒ Object
Hook method: subclasses are expected to define how to generate a model instance.
42 43 44 |
# File 'lib/tdc/generators/standard_generator.rb', line 42 def generate_instance raise Tdc::MissingOverrideError, "Implement the 'generate_instance' method" end |
#run_definition_resolvers(_instance_definition) ⇒ Object
Hook method: subclasses may include the DefinitionResolvable concern to override.
57 58 59 |
# File 'lib/tdc/generators/standard_generator.rb', line 57 def run_definition_resolvers(_instance_definition) # Do nothing end |
#run_resolvers_and_generate_instance ⇒ Object
23 24 25 26 27 28 |
# File 'lib/tdc/generators/standard_generator.rb', line 23 def run_resolvers_and_generate_instance run_extended_attribute_interpreters(instance_definition) run_definition_resolvers(instance_definition) generate_instance end |
#run_resolvers_and_update_instance(existing_record) ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/tdc/generators/standard_generator.rb', line 30 def run_resolvers_and_update_instance(existing_record) generation_context.with_updating do run_extended_attribute_interpreters(instance_definition) run_definition_resolvers(instance_definition) update_instance(existing_record) end end |
#update_instance(existing_record) ⇒ Object
Hook method: subclasses may override to customize update behavior for existing records.
49 50 51 52 |
# File 'lib/tdc/generators/standard_generator.rb', line 49 def update_instance(existing_record) existing_record.update!(instance_definition) existing_record end |