module Xporter::Exporter::Decorator

Public Instance Methods

decorates(boolean_or_class) click to toggle source
# File lib/xporter/exporter/decorator.rb, line 17
def decorates(boolean_or_class)
  if boolean_or_class.nil? || boolean_or_class == false
    self._decorates = false
    self._decorator_class = nil
    return
  end

  self._decorates = true

  if boolean_or_class.is_a?(Class)
    self._decorator_class = boolean_or_class
  end
end

Private Instance Methods

decorate(record) click to toggle source
# File lib/xporter/exporter/decorator.rb, line 51
def decorate(record)
  if self.class._decorator_class.present?
    instantiate_decorated_object(self.class._decorator_class, record)
  else
    record.decorate(view_context)
  end
end
decorator?() click to toggle source
# File lib/xporter/exporter/decorator.rb, line 47
def decorator?
  self.class._decorates == true
end
instantiate_decorated_object(klass, record) click to toggle source
# File lib/xporter/exporter/decorator.rb, line 59
def instantiate_decorated_object(klass, record)
  klass.new(record, view_context)
end
view_context() click to toggle source
# File lib/xporter/exporter/decorator.rb, line 34
def view_context
  return unless defined?(ActionView)

  @view_context ||= begin
    ActionView::Base.new(ActionController::Base.view_paths).tap do |view|
      view.class_eval do
        include Rails.application.routes.url_helpers
        include ApplicationHelper
      end
    end
  end
end