Module: Sinatra::Decorator::Decoratable

Defined in:
lib/sinatra/decorator/decoratable.rb

Instance Method Summary collapse

Instance Method Details

#decorate(options = {}) {|decorator| ... } ⇒ Object

Yields:

  • (decorator)


4
5
6
7
8
9
10
11
12
13
14
# File 'lib/sinatra/decorator/decoratable.rb', line 4

def decorate(options = {})
  return @decorator if @decorator

  klass = options[:as]
  klass_name = "#{self.class}Decorator"
  klass = klass_name.constantize if klass.nil?
  decorator = klass.new(self, context: self)

  yield decorator if block_given?
  @decorator = decorator
end