Sha256: 176c0f9ba43b87bb761acae57775270bbb850c8c02a899399e804d77f52f5502

Contents?: true

Size: 793 Bytes

Versions: 1

Compression:

Stored size: 793 Bytes

Contents

module Tdc
  module Generators
    #
    # Abstract class for defining generators that define a single model instance.
    #
    # See also StandardGenerator.
    #
    class SingularGenerator < Tdc::Generators::ConfigurableGenerator
      def generate
        configure_instance_definition(singular_instance_definition)

        run_resolvers_and_generate_instance
      end

      private

      def singular_instance_definition
        all_instance_definitions = instance_definitions

        if all_instance_definitions.many?
          raise Tdc::FatalError, "A singular generator only generates a single model instance"
        end

        # Delete the tag so that the models do not need to filter it out.
        all_instance_definitions.first.except("tag")
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tdc-0.3.5 lib/tdc/generators/singular_generator.rb