public
Description: A simple plugin that allows to keep track of the users activity. Common uses could be user's wall, public timeline portlets, etc...
Homepage:
Clone URL: git://github.com/linkingpaths/acts_as_scribe.git
Click here to lend your support to: acts_as_scribe and make a donation at www.pledgie.com !
name age message
file .gitignore Tue Feb 24 08:41:16 -0800 2009 New gitignore [aitor]
file MIT-LICENSE Mon Sep 15 02:34:13 -0700 2008 added the plugin backbones [aitor]
file README.markdown Tue Feb 24 10:14:36 -0800 2009 New version 0.1 [aitor]
file Rakefile Tue Feb 24 10:14:36 -0800 2009 New version 0.1 [aitor]
file VERSION.yml Tue Feb 24 08:43:47 -0800 2009 Version bump to 0.1.0 [aitor]
file acts_as_scribe.gemspec Tue Feb 24 10:14:36 -0800 2009 New version 0.1 [aitor]
directory features/ Wed Feb 25 02:58:06 -0800 2009 unrequire activity model on library load due to... [aitor]
directory generators/ Tue Feb 24 10:14:36 -0800 2009 New version 0.1 [aitor]
file init.rb Mon Sep 15 02:34:13 -0700 2008 added the plugin backbones [aitor]
directory lib/ Wed Feb 25 03:23:02 -0800 2009 Use simple strings instead of symbols for the a... [aitor]
directory spec/ Wed Feb 25 02:58:06 -0800 2009 unrequire activity model on library load due to... [aitor]
README.markdown

ActsAsScribe

A simple plugin that allows to keep history records of the users activities. Common uses could be user's wall, public timeline portlets, etc...

Scribe (From Wikipedia, the free encyclopedia): "A scribe was traditionally a person who could read and write. This usually indicated secretarial and administrative duties such as dictation and keeping business, judicial, and history records for kings, nobles, temples, and cities."

Resources

Install

  • Run the following command:

script/plugin install git://github.com/linkingpaths/acts_as_scribe.git

  • Generate the tables via the given generator:

script/generate acts_as_scribe_migration

  • And finally...

rake db:migrate

Record activities in your models

  class Comment < ActiveRecord::Base    
    record_activity_of :user
  end

You can use any association that is related to an user:

  class Post < ActiveRecord::Base

belongs_to :author, :class_name => "User"
record_activity_of :author

end

This will register automatically a new activity when you create or destroy a new record. If you want control over the activities registration based on your model's state just use the :if option

  class Post < ActiveRecord::Base
    belongs_to :author, :class_name => "User"
    record_activity_of :author, :if => Proc.new { |post| post.private == false }
  end

Record activities without related item

If you want to record activities not related to any specific model just use Activity.report in your code:

  def grant_admin(user)

user.admin = true
Activity.report(current_user, :grant_admin, user)

end

If the action is not related to any item, just don't use it.
  def login

current_user = User.find(…)
Activity.report(current_user, :login)

end

More

http://github.com/linkingpaths/acts_as_scribe

http://github.com/linkingpaths/acts_as_scribe/wikis

Copyright (c) 2008 Linking Paths, released under the MIT license