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)
definition = DataClass::Definition.new(attribute_names)
definer = DataClass::Definer.new(definition)
definer.define_class(parent_class: self, &block)
end
...
end
Constant Summary collapse
- VERSION =
'1.0.0'
Class Method Summary collapse
Class Method Details
.backport? ⇒ Boolean
23 24 25 |
# File 'lib/data_class_factory.rb', line 23 def backport? Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.2.0') end |
.define_factory_class ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/data_class_factory.rb', line 27 def define_factory_class Class.new do define_singleton_method(:define) do |*attribute_names, &block| definition = DataClass::Definition.new(attribute_names) definer = DataClass::Definer.new(definition) definer.define_class(parent_class: self, &block) end private_class_method :new include DataClass::InstanceMethods end end |