class Crabfarm::Factories::Decorable::DecoratorChain
Attributes
base[R]
decorator[R]
Public Class Methods
new(_base, _decorator)
click to toggle source
# File lib/crabfarm/factories/decorable.rb, line 9 def initialize(_base, _decorator) @base = _base # al @decorator = _decorator end
Public Instance Methods
decorate(_obj)
click to toggle source
# File lib/crabfarm/factories/decorable.rb, line 25 def decorate(_obj) if @decorator.respond_to? :decorate new_obj = @decorator.decorate _obj _obj = new_obj if new_obj end return _obj if @base.nil? @base.decorate _obj end
prepare(_args)
click to toggle source
# File lib/crabfarm/factories/decorable.rb, line 14 def prepare(_args) obj = if @decorator.respond_to? :prepare @decorator.prepare(*_args) else nil end return obj if @base.nil? base_obj = @base.prepare _args raise ConfigurationError.new 'Decorator race condition' if obj and base_obj obj || base_obj end