module Gifted::Gift

Attributes

default_decorator[RW]

Public Instance Methods

gift(view = nil) click to toggle source
# File lib/gifted/gift.rb, line 7
def gift(view = nil)
  @decorator_views ||= { default: gift_delegator }

  if view
    @decorator_views[view] ||= gift_delegator(view)
  else
    @decorator_views[:default]
  end
end

Private Instance Methods

gift_delegator(view = nil) click to toggle source
# File lib/gifted/gift.rb, line 19
def gift_delegator(view = nil)
  decorator = default_decorator

  if view
    decorator = default_decorator.const_get("#{view.to_s.camelcase}Decorator")
    decorator.send :include, Gifted::ViewHelpers unless decorator.is_a?(Class)
  end

  SimpleDelegator.new(self).extend decorator
end