lib/muck_activities.rb in muck-activities-0.1.8 vs lib/muck_activities.rb in muck-activities-0.1.9

- old
+ new

@@ -1,75 +1,7 @@ require 'cgi' require 'muck_activities/initialize_routes' - -module MuckActivity # :nodoc: - - def self.included(base) # :nodoc: - base.extend ActMethods - end - - module ActMethods - - # +has_activities+ gives the class it is called on an activity feed and a method called - # +add_activity+ that can add activities into a feed. Retrieve activity feed items - # via object.activities. ie @user.activities. - def has_activities - unless included_modules.include? InstanceMethods - has_many :activity_feeds, :as => :ownable - has_many :activities, :through => :activity_feeds, :order => 'created_at desc' - include InstanceMethods - end - end - - # +acts_as_activity_source+ gives the class it is called on a method called - # +add_activity+ that can add activities into a feed. - def acts_as_activity_source - unless included_modules.include? InstanceMethods - include InstanceMethods - end - end - - end - - module InstanceMethods - - # +add_activity+ adds an activity to all activites feeds that belong to the objects found in feed_to. - # * +feed_to+: an array of objects that have +has_activities+ declared on them. The generated activity - # will be pushed into the feed of each of these objects. - # * +source+: the object that peformed the activity ie a user or group - # * +item+: an object that will be used to generated the entry in an activity feed - # * +template+: name of an partial that will be used to generated the entry in the activity feed. Place - # templates in /app/views/activity_templates - # * +title+: optional title that can be used in the template - # * +content+: option content that can be used in the template. Useful for activities that might not have - # an item but instead might have a message or other text. - # * +check_method+: method that will be called on each item in the feed_to array. If the method evaluates - # to false the activity won't be added to the object's activity feed. An example usage would be - # letting users configure which items they want to have in their activity feed. - def add_activity(feed_to, source, item, template, title = '', content = '', check_method = nil) - feed_to = [feed_to] unless feed_to.is_a?(Array) - activity = Activity.create(:item => item, :source => source, :template => template, :title => title, :content => content) - feed_to.each do |ft| - if check_method - ft.activities << activity if ft.send(check_method) - else - ft.activities << activity - end - end - end - - # +status+ returns the first activity item from the user's activity feed that is a status update. - # Used for displaying the last status update the user made - def status - self.activities.find(:first, :conditions => ['is_status_update = true'], :order => 'created_at DESC') - end - - def can_view?(check_object) - self == check_object - end - end - -end +require 'muck_activities/muck_activity' ActionController::Base.send :helper, MuckActivityHelper ActiveRecord::Base.send(:include, MuckActivity) ActionController::Base.send(:include, MuckActivity) \ No newline at end of file