Module: Crabfarm::Factories::Decorable::ClassMethods

Defined in:
lib/crabfarm/factories/decorable.rb

Instance Method Summary collapse

Instance Method Details

#build(*_args) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
# 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) ⇒ Object



43
44
45
46
47
48
49
50
# 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