Skip to content

rails gem to track user route access

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
MIT-LICENSE
Notifications You must be signed in to change notification settings

Beetrack/route-tracker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RouteTracker

this gem allows you to track which routes already visited some user of your ruby on rails app. You need to specify which routes are trackable and then you can use the method current_user.route_visited?('/resume', 'GET') to check if the user visited that route of your web app.

Install Gem

Add on your Gemfile

  #Gemfile
  gem "route_tracker"

Configure

create config yml

You need to create a yml named route_tracker on config route (config/route_tracker.yml) and put the path name as key and the number is the identifier of that route starting from 1. (This represent the digit of the binary, this binary is used to sore a flag to then check if visited that method)

  #config/route_tracker.yml
  #
  POST:
    '/post1': 1
    '/post1': 2
    #'/urlname': track_id
  GET:
    '/get1': 3
    '/get1': 4

you need to be careful with the key number (track_id), used to identify the route. If you already selected one number for that route, you can't change it on production or you will get wrong data.

Create migration

You need to create a new migration for your user model to add an integer to storage the respective route level, to check which route already visited. (This integer is used to store as binary which route the user already visited) For example:

  $ rails g migration add_level_to_users level:integer

Add route_trackeable

With this the model user will have the methods of route_trackeable

  # app/models/user.rb
  class User < ActiveRecord::Base
    route_trackeable track_level: :level
  end

Add route checker on application controller

You need to remplace current_user with your own session of user in case that you are not using devise.

  # app/controllers/application_controller.rb 
  class ApplicationController < ActionController::Base
  
    before_filter :track_user_route
    
    def track_user_route
      reutrn if current_user.blank?
      current_user.check_route_level(request)
    end
  end

Check if user visited some route

Remember to put the paths on config/route_tracker.yml with their respective track_id

  #check if user visited index path
  current_user.route_visited?('/index')
  #check if user posted some form
  current_user.route_visited?('/form1', 'POST')

This project uses MIT-LICENSE.

About

rails gem to track user route access

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
MIT-LICENSE

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 75.4%
  • HTML 19.5%
  • CSS 2.7%
  • JavaScript 2.4%