ensl.org/lib/plugins/acts_as_readable
2015-08-23 12:06:27 +01:00
..
generators/acts_as_readable_migration Fold in acts_as_readable plugin into lib so that it's loaded properly 2015-08-23 12:06:27 +01:00
lib Fold in acts_as_readable plugin into lib so that it's loaded properly 2015-08-23 12:06:27 +01:00
init.rb Fold in acts_as_readable plugin into lib so that it's loaded properly 2015-08-23 12:06:27 +01:00
README Fold in acts_as_readable plugin into lib so that it's loaded properly 2015-08-23 12:06:27 +01:00

ActsAsReadable
==============

ActsAsReadable allows you to create a generic relationship of items which can
be marked as 'read' by users. This is useful for forums or any other kind of
situation where you might need to know whether or not a user has seen a particular
model.

Installation
============

To install the plugin just install from the SVN:

script/plugin install http://svn.intridea.com/svn/public/acts_as_readable

You will need the readings table to use this plugin. A generator has been included,
simply type

script/generate acts_as_readable_migration

to get the standard migration created for you.

Example
=======

class Post < ActiveRecord::Base
  acts_as_readable
end

bob = User.find_by_name("bob")

bob.readings                      # => []

Post.find_unread_by(bob)          # => [<Post 1>,<Post 2>,<Post 3>...]
Post.find_read_by(bob)            # => []

Post.find(1).read_by?(bob)        # => false
Post.find(1).read_by!(bob)        # => <Reading 1>
Post.find(1).read_by?(bob)        # => true
Post.find(1).users_who_read       # => [<User bob>]

Post.find_unread_by(bob)          # => [<Post 2>,<Post 3>...]
Post.find_read_by(bob)            # => [<Post 1>]

bob.readings                      # => [<Reading 1>]

Copyright (c) 2008 Michael Bleigh and Intridea, Inc. released under the MIT license