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
 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