Sha256: c39e19a5deffb794f89b33ad365b6e1a7a2c3f050ac85ea2c7c1ceffb99f5cff

Contents?: true

Size: 1.3 KB

Versions: 1

Compression:

Stored size: 1.3 KB

Contents

class ContentInstance

  include Mongoid::Document
  include Mongoid::Timestamps
  
  ## extensions ##
  include CustomFields::ProxyClassEnabler
  
  ## fields (dynamic fields) ##
  field :_slug
  field :_position_in_list, :type => Integer, :default => 0
  
  ## validations ##
  validate :require_highlighted_field
  
  ## associations ##
  embedded_in :content_type, :inverse_of => :contents
  
  ## callbacks ##
  before_save :set_slug
  before_create :add_to_list_bottom
  
  ## named scopes ##
  named_scope :latest_updated, :order_by => [[:updated_at, :desc]], :limit => Locomotive.config.lastest_items_nb
  
  ## methods ##
  
  def to_liquid
    Locomotive::Liquid::Drops::Content.new(self)
  end
  
  protected
  
  def set_slug
    _alias = self.highlighted_field_alias
    self._slug = self.send(_alias).parameterize('_')
  end
  
  def add_to_list_bottom
    Rails.logger.debug "add_to_list_bottom"
    self._position_in_list = self.content_type.contents.size
  end
  
  def require_highlighted_field
    _alias = self.highlighted_field_alias
    if self.send(_alias).blank?
      self.errors.add(_alias, :blank)
    end
  end
  
  def highlighted_field_value
    self.send(self.content_type.highlighted_field._name)
  end
  
  def highlighted_field_alias
    self.content_type.highlighted_field._alias.to_sym
  end
    
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
locomotive_cms-0.0.3.3 app/models/content_instance.rb