Sha256: ca853ba117a231602cbaeecb92c0f2c0007e75c5ac2e4339e17cc9dbcc05279e
Contents?: true
Size: 1.59 KB
Versions: 2
Compression:
Stored size: 1.59 KB
Contents
module Tdc module Generators # # Knows how to provide a configurable instance definition. # class ConfigurableGenerator < Tdc::Generators::GeneratorBase include Tdc::Generators::DefinitionSourcable attr_reader :instance_definition source_definition_from :instance_definition def run_resolvers_and_generate_instance run_atx_resolvers(instance_definition) run_definition_resolvers(instance_definition) generate_instance end # # Hook method: subclasses are expected to define how to generate a model instance. # def generate_instance raise Tdc::MissingOverrideError, "Implement the 'generate_instance' method" end # # Hook method: subclasses may include the DefinitionResolvable concern to override. # def run_definition_resolvers(_instance_definition) # Do nothing end private def configure_instance_definition(instance_definition) @instance_definition = instance_definition configure_definition_source(instance_definition) end def run_atx_resolvers(instance_definition) atx_definitions = instance_definition.select { |k, _v| /_atx$/ =~ k } atx_definitions.each do |k, v| # Remove the original _atx attribute. instance_definition.delete(k) # Add a standard _at attribute. instance_definition[k.delete_suffix("x")] = atx_context.instance_eval(v) end end def atx_context Tdc::Generators::AtxContextFactory.instance.context end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
tdc-0.3.7 | lib/tdc/generators/configurable_generator.rb |
tdc-0.3.6.1 | lib/tdc/generators/configurable_generator.rb |