module Verifly::ClassBuilder::Mixin

Mixin provides useful methods to integrate into builder subsystem. Feel free to override or just never include it. @attr_writer [[Class]] buildable_classes

Array of classes which will be checked if they
suite constructor arguments. Order matters

Public Instance Methods

build(*arguments, &block) click to toggle source

Default implementation. This method should be used instead of new in all cases

# File lib/verifly/class_builder.rb, line 36
def build(*arguments, &block)
  build_class(*arguments, &block).new(*arguments, &block)
end
build_class(*args, &block) click to toggle source

Default implementation of build_class. Feel free to change it, but you'll have to override it in buildable_classes

# File lib/verifly/class_builder.rb, line 26
def build_class(*args, &block)
  if @class_builder
    @class_builder.call(*args, &block)
  else
    self
  end
end
buildable_classes=(klasses) click to toggle source

Array of classes which will be checked if they suite constructor arguments. Order matters @param klasses [[Class]]

# File lib/verifly/class_builder.rb, line 19
def buildable_classes=(klasses)
  @class_builder = ClassBuilder.new(klasses).freeze
end