Sha256: b4de89685cffff113402f87af569a468783a793d8b69c5532857540119d8fdbd

Contents?: true

Size: 1.9 KB

Versions: 7

Compression:

Stored size: 1.9 KB

Contents

# == Schema Information
#
# Table name: activities
#
#  id            :integer(4)      not null, primary key
#  item_id       :integer(4)
#  item_type     :string(255)
#  template      :string(255)
#  source_id     :integer(4)
#  source_type   :string(255)
#  content       :text
#  title         :string(255)
#  status_update :boolean(1)
#  created_at    :datetime
#  updated_at    :datetime
#

class Activity < ActiveRecord::Base
  unloadable
  
  belongs_to :item, :polymorphic => true
  belongs_to :source, :polymorphic => true
  has_many :activity_feeds
  
  acts_as_commentable
    
  validates_presence_of :source
      
  named_scope :since, lambda { |time| {:conditions => ["activities.created_at > ?", time] } }
  named_scope :before, lambda {|time| {:conditions => ["activities.created_at < ?", time] } }
  named_scope :recent, :order => "activities.created_at DESC"
  named_scope :after, lambda {|id| {:conditions => ["activities.id > ?", id] } }
  named_scope :only_public, :conditions => ["activities.is_public = true"]
  named_scope :filter_by_template, lambda { |template| { :conditions => ["activities.template = ?", template] } unless template.blank? }
  
  def validate
    errors.add_to_base(I18n.t('muck.activities.template_or_item_required')) if template.blank? && item.blank?
  end
    
  # Provides a template that can be used to render a view of this activity.
  # If 'template' is not specified when the object created then the item class
  # name will be used to generated a template
  def partial
    template || item.class.name.underscore
  end

  def has_comments?
    @has_comments ||= !self.comments.blank?
  end
    
  # Checks to see if the specified object can edit this activity.
  # Most likely check_object will be a user
  def can_edit?(check_object)
    if check_object.is_a?(User)
      return true if check(check_object, :source_id)
    else
      source == check_object
    end
    false
  end
  
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
muck-activities-0.1.8 app/models/activity.rb
muck-activities-0.1.9 app/models/activity.rb
muck-activities-0.1.10 app/models/activity.rb
muck-activities-0.1.11 app/models/activity.rb
muck-activity-0.1.5 app/models/activity.rb
muck-activities-0.1.7 app/models/activity.rb
muck-activity-0.1.6 app/models/activity.rb