module Crabfarm::Factories::Decorable::ClassMethods

Public Instance Methods

build(*_args) click to toggle source
# File lib/crabfarm/factories/decorable.rb, line 52
def build(*_args)
  obj = if @decorator
    @decorator.prepare _args
  else nil end

  if obj.nil?
    obj = default_build(*_args)
  end

  if @decorator
    @decorator.decorate obj
  else obj end
end
with_decorator(_decorator) { || ... } click to toggle source
# File lib/crabfarm/factories/decorable.rb, line 43
def with_decorator(_decorator)
  @decorator = DecoratorChain.new @decorator, _decorator
  begin
    return yield
  ensure
    @decorator = @decorator.base
  end
end