Saw

As a developer/admin, I saw user coming to registration page, with parameters. I saw user clking on "Connect".

What the user might have done? this is a common question developers do have while debugging any issue, going through the logs checking for particular log statement or request param, and then after spending an hour coming with a decision that user must have done this. Saw saves this hour, time spent on debugging and answering this question What user might have done?.

This is one more simply way to track what user is doing.

Installation

Add this line to your application's Gemfile:

gem 'saw'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install saw

And then install

$ rails generate saw install

Next

$ rake db:migrate

Usage

before_filter :saw

Or

saw 'visiting details page', { :extra => 'something' } 

Or

# in views

<button id="button-retry" onclick="open_pop_up_form();" class="mybutton medium green">
  Connect to your Device
</button>

<script type="text/javascript">
  function open_pop_up_form(){
    $.post("/visits", { doing: "clicked on 'Connect to your Device' " } );
    ....

Access users' visits as

visit = @user.visits.sample
visit.user_agent
visit.remote_host
visit.hits.map(&:note)
visit.lasts # => 00:12:45
visit.title # => 00:12:45 on Apr 14, 2013
visit.summary

hit = visit.hits.sample
hit.note
hit.url
hit.http_method
hit.action
hit.json_data
hit.created_at

A visit is not a single request made to the server but a session. Similalry a hit is not necessary to be a request hit.

Testing (TBD)

ruby test/saw_test.rb