class ROM::ClassBuilder

Internal support class for generating classes

@private

Public Instance Methods

call() { |klass| ... } click to toggle source

Generate a class based on options

@example

builder = ROM::ClassBuilder.new(name: 'MyClass')

klass = builder.call
klass.name # => "MyClass"

@return [Class]

@api private

# File lib/rom/support/class_builder.rb, line 24
    def call
      klass = Class.new(parent)

      klass.class_eval <<-RUBY, __FILE__, __LINE__ + 1
        def self.name
          #{name.inspect}
        end

        def self.inspect
          name
        end

        def self.to_str
          name
        end

        def self.to_s
          name
        end
      RUBY

      yield(klass) if block_given?

      klass
    end