Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Smooth acitivity tracking for models - similiar to github's Public Activity
branch: master

This branch is 435 commits behind pokonski:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
.rspec
.travis.yml
Gemfile
Gemfile.lock
MIT-LICENSE
README.md
Rakefile
init.rb Rebranding
public_activity.gemspec

README.md

PublicActivity Build Status

public_activity provides smooth activity tracking for your ActiveRecord models in Rails 3. Simply put: it records what has been changed or edited and gives you the ability to present those recorded activities to users - in a similar way Github does it.

Example

A picture is worth a thousand words, so here is a visual representation of what this gem is about:

Example usage

Installation

You can install this gem as you would any other gem: gem install public_activity or in your Gemfile: gem 'public_activity'

Usage

Create migration for activities (in your Rails project):

rails g public_activity:migration
rake db:migrate

Add 'tracked' to the model you want to keep track of:

class Article < ActiveRecord::Base
  tracked
end

To default the owner to the current user (optional)

#Aplication Controller
before_filter :define_current_user

def define_current_user
  User.current_user = current_user
end

#User.rb (model)
class User < ActiveRecord::Base
  cattr_accessor :current_user
end

And now, by default create/update/destroy activities are recorded in activities table. To display them you can do a simple query:

# some_controller.rb
def index
  @activities = PublicActivity::Activity.all
end

And in your views:

<% for activity in @activities %>
  <%= activity.text %><br/>
<% end %>

The only thing left is to add templates (config/pba.yml), for example:

activity:
  article:
    create: 'Article has been created'
    update: 'Someone has edited the article'
    destroy: 'Some user removed an article!'

Place this in a file and reference it in a Rails initializer.

PublicActivity::Activity.template = YAML.load_file("#{Rails.root}/config/pba.yml")

This is only a basic example, refer to documentation for more options and customization!

Documentation

You can find documentation here

License

Copyright (c) 2012 Piotrek Okoński, released under the MIT license

Something went wrong with that request. Please try again.