Measure the yearly and monthly growth of your Rails models with a dashboard mounted on your Rails app. Specify the models you'd like to measure in a single initializer file and that's it, the gem will handle the rest.


Add the following line to your Gemfile:

gem 'growth'

Then run:

$ bundle install

Next, you need to run the generator:

$ rails generate growth:install

Running the install generator does two things:

  1. Mounts the stats engine at '/growth' by adding to your routes.rb. You can also pass a route of your choice to the 'at' param.
Rails.application.routes.draw do
  mount Growth::Engine, at: "/growth"
  1. Creates an initializer at '/config/initalizers/growth.rb'
Growth.models_to_measure = { |model| model.to_s }

You can customize the models you'd like to measure by passing an array of models as strings, i.e.:

Growth.models_to_measure = [ 'User', 'Post', 'Comment' ]

Options in your config file are:

Growth.models_to_measure takes an array of models as strings, ex. [ 'Posts', 'Users', 'Comments' ], that you'd like to measure. The default measures all models.

Growth.model_blacklist takes an array of models, ex. [ 'AdminUsers' ], that you want to prevent the gem from measuring.

Growth.username is your username for http_basic_auth

Growth.password is your password for http_basic_auth


A more advanced feature in the gem allows you to better understand the associations between your models. For example, let's say you have a Users model that has_many Posts. Over time you might wonder, how many users have only created one post? Which user has created the most posts? Rather than write these database queries each time, the growth gem will automatically generate these reports for you.


Please see LICENSE for licensing details.