Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A plugin that makes basic reporting for rails models dead simple. Formally known as reports_as_sparkline.
Ruby
branch: master

This branch is 8 commits ahead, 68 commits behind saulabs:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
generators
lib/saulabs
rails
spec
.gitignore
Gemfile
HISTORY.md
MIT-LICENSE
README.md
Rakefile
reportable.gemspec

README.md

Reportable

Reportable allows for the easy creation of reports based on ActiveRecord models.

Usage

Usage is pretty easy. To declare a report on a model, simply define that the model provides a report:

class User < ActiveRecord::Base

  reportable :registrations, :aggregation => :count

end

The reportable method takes a bunch more options which are described in the API docs. For example you could generate a report on the number of updated users records per second or the number of registrations of users that have a last name that starts with 'A' per month:

class User < ActiveRecord::Base

  reportable :last_name_starting_with_a_registrations, :aggregation => :count, :grouping => :month, :conditions => ["last_name LIKE 'A%'"]

  reportable :updated_per_second, :aggregation => :count, :grouping => :hour, :date_column => :updated_at

end

For every declared report a method is generated on the model that returns the date:

User.registrations_report

User.last_name_starting_with_a_registrations_report

User.updated_per_second_report

Working with the data

The data is returned as an Array of Arrays of DateTimes and Floats, e.g.:

[
  [DateTime.now,          1.0],
  [DateTime.now - 1.day,  2.0],
  [DateTime.now - 2.days, 3.0]
]

Reportable provides helper methods to generate a sparkline image from this data that you can use in your views, e.g.:

<%= google_report_tag(User.registrations_report) %>

For other options to generate sparklines see the API docs.

Installation

To install the Reportable gem, simply run

[sudo] gem install reportable

Rails 2.x

To install Reportable for Rails 2.x, add it to your application's dependencies in your environment.rb:

config.gem 'reportable', :lib => 'saulabs/reportable'

and generate the migration that create reportable's cache table:

./script/generate reportable_migration

If you want to use reportable's JavaScript graph output format, you also have to generate the JavaScript files:

    ./script/generate reportable_raphael_assets

if you want to use Raphael or if you want to use jQuery and flot:

    ./script/generate reportable_jquery_flot_assets

Rails 3.0

To install Reportable for Rails 3.0, add it to your application's Gemfile:

gem 'reportable', :require => 'saulabs/reportable'

and generate the migration that create reportable's cache table (beware that reportable currently only supports ActiveRecord):

rails generate reportable_migration

If you want to use reportable's JavaScript graph output format, you also have to generate the JavaScript files:

rails generate reportable_raphael_assets

if you want to use Raphael or if you want to use jQuery and flot:

    rails generate reportable_jquery_flot_assets

Plans

  • add support for Oracle and MSSQL
  • add support for DataMapper
  • add more options to generate graphs from the data
  • add the option to generate textual reports on the command line

Authors

© 2008-2010 Marco Otte-Witte (http://simplabs.com) and Martin Kavalar (http://www.sauspiel.de)

Released under the MIT license

Contributors

Something went wrong with that request. Please try again.