Sha256: 3fe790d70e7f0d330761976be135180579f035bf58488c614cab6f4c1588456c

Contents?: true

Size: 1.07 KB

Versions: 11

Compression:

Stored size: 1.07 KB

Contents

class Locomotive::BasePresenter

  include ActionView::Helpers::SanitizeHelper
  extend  ActionView::Helpers::SanitizeHelper::ClassMethods
  include ActionView::Helpers::TextHelper
  include ActionView::Helpers::NumberHelper

  attr_reader :source, :options, :ability, :depth

  delegate :created_at, :updated_at, :to => :source

  def initialize(object, options = {})
    @source   = object
    @options  = options || {}
    @depth    = options[:depth] || 0
    @ability  = options[:ability]

    if @options[:current_account] && @options[:current_site]
      @ability = Locomotive::Ability.new @options[:current_account], @options[:current_site]
    end
  end

  def id
    self.source.persisted? || self.source.embedded? ? self.source._id.to_s : nil
  end

  alias :_id :id

  def ability?
    self.ability.present?
  end

  def included_methods
    %w(id _id created_at updated_at)
  end

  def as_json(methods = nil)
    methods ||= self.included_methods
    {}.tap do |hash|
      methods.each do |meth|
        hash[meth] = self.send(meth.to_sym) rescue nil
      end
    end
  end

end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
locomotive_cms-2.0.0.rc12 app/presenters/locomotive/base_presenter.rb
locomotive_cms-2.0.0.rc11 app/presenters/locomotive/base_presenter.rb
locomotive_cms-2.0.0.rc10 app/presenters/locomotive/base_presenter.rb
locomotive_cms-2.0.0.rc9 app/presenters/locomotive/base_presenter.rb
locomotive_cms-2.0.0.rc8 app/presenters/locomotive/base_presenter.rb
locomotive_cms-2.0.0.rc7 app/presenters/locomotive/base_presenter.rb
locomotive_cms-2.0.0.rc6 app/presenters/locomotive/base_presenter.rb
locomotive_cms-2.0.0.rc5 app/presenters/locomotive/base_presenter.rb
locomotive_cms-2.0.0.rc4 app/presenters/locomotive/base_presenter.rb
locomotive_cms-2.0.0.rc2 app/presenters/locomotive/base_presenter.rb
locomotive_cms-2.0.0.rc1 app/presenters/locomotive/base_presenter.rb