Module: DataClassFactory

Defined in:
lib/data_class_factory.rb,
lib/data_class_factory/version.rb

Overview

Defining a factory class. ‘Data = DataClassFactory.define_factory_class` will define a factory class like this.

class Data
  # @param attribute_names [Array<Symbol>]
  # @return [Class<Data>]
  def self.define(*attribute_names, &block)
    factory = DataClass::Factory.new(attribute_names)
    factory.create(parent_class: self, &block)
  end
  ...
end

Constant Summary collapse

VERSION =
'0.1.0'

Class Method Summary collapse

Class Method Details

.backport?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/data_class_factory.rb', line 22

def backport?
  Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.2.0')
end

.define_factory_classObject



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/data_class_factory.rb', line 26

def define_factory_class
  Class.new do
    define_singleton_method(:define) do |*attribute_names, &block|
      factory = DataClass::Factory.new(attribute_names)
      factory.create(parent_class: self, &block)
    end
    private_class_method :new

    include DataClass::InstanceMethods
  end
end