Project

notches

0.0
Low commit activity in last 3 years
No release in over a year
A Rails Engine for tracking your web traffic.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 0.5.5
~> 3.9.1
~> 1.3.11

Runtime

>= 4.1
 Project Readme

Notches

A Rails Engine for tracking your web traffic or other events.

Installation

Add this to your Gemfile and run the bundle command.

gem 'notches', '~> 0.7.1'

And then install and run the necessary migrations.

rake notches:install:migrations
rake db:migrate

Mount your engine at your desired location in config/routes.rb.

mount Notches::Engine => '/notches'

Recording hits

To record hits include the notch pixel image at the bottom of your views.

<%= image_tag "/notches/hits/new.gif?url=#{request.url}" %>

Counting hits

For a URL:

Notches::Hit.joins(:url).where('url like ?', '/posts').count

For an IP:

Notches::Hit.joins(:ip).where('ip = ?', '127.0.0.1').count

For a session id:

Notches::Hit.joins(:session).where('session_id = ?', 'abcd').count

For a date:

Notches::Hit.joins(:date).where('date = ?', Date.today).count

For a particular time of day:

Notches::Hit.joins(:time).where('time between ?', '09:00:00', '17:00:00').count

Or a user agent:

Notches::Hit.joins(:user_agent).where('user_agent like ?', '%Mobile%').count

To get a better idea of how Notches is setup check out the Notches::Hit model.

Recording events

To record events make the following call:

Notches::Event.log(name: 'An event')

Events can have one or two optional scopes:

Notches::Event.log(name: 'An event', scope: 'A person')
Notches::Event.log(name: 'An event', scope: ['A person', 'An object'])

Counting events

For a name:

Notches::Event.joins(:name).where('name = ?', 'An event').count

For a name and scope:

Notches::Event.joins(:name, :scope).where(
  'name = ? and scopes.primary = ? and scopes.secondary = ?',
  'An event', 'A person', 'An object'
).count