CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Thu, 21 Aug 2025 04:16:32 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20090123150442
location: https://web.archive.org/web/20090123150442/https://github.com/ffmike/user_event_logger/tree/
server-timing: captures_list;dur=0.758301, exclusion.robots;dur=0.026410, exclusion.robots.policy;dur=0.011878, esindex;dur=0.012871, cdx.remote;dur=20.320253, LoadShardBlock;dur=183.597237, PetaboxLoader3.datanode;dur=57.084085, PetaboxLoader3.resolve;dur=51.303584
x-app-server: wwwb-app221
x-ts: 302
x-tr: 256
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app221; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 301
server: nginx
date: Thu, 21 Aug 2025 04:16:33 GMT
content-type: text/html; charset=utf-8
content-length: 120
x-archive-orig-server: nginx/0.6.31
x-archive-orig-date: Fri, 23 Jan 2009 15:04:41 GMT
x-archive-orig-connection: close
x-archive-orig-set-cookie: _github_ses=BAh7BzoOcmV0dXJuX3RvIh0vaW5ib3gvbmV3L3N0cmVldGNsZWFuZXIiCmZsYXNoSUM6J0FjdGlvbkNvbnRyb2xsZXI6OkZsYXNoOjpGbGFzaEhhc2h7AAY6CkB1c2VkewA%3D--fd1d975aa70679d067025d3f1fa353d48929ed30; path=/; expires=Wed, 01 Jan 2020 08:00:00 GMT; HttpOnly
x-archive-orig-status: 301 Moved Permanently
location: https://web.archive.org/web/20090123150442/https://github.com/ffmike/user_event_logger/tree/master
x-archive-orig-x-runtime: 348ms
x-archive-orig-cache-control: no-cache
x-archive-orig-content-length: 120
cache-control: max-age=1800
memento-datetime: Fri, 23 Jan 2009 15:04:42 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Fri, 23 Jan 2009 15:04:42 GMT", ; rel="memento"; datetime="Fri, 23 Jan 2009 15:04:42 GMT", ; rel="next memento"; datetime="Thu, 29 Jan 2009 09:53:40 GMT", ; rel="last memento"; datetime="Sat, 29 Aug 2009 12:05:40 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_7_20090123134858_crawl100-c/52_7_20090123150404_crawl101.arc.gz
server-timing: captures_list;dur=1.618693, exclusion.robots;dur=0.018183, exclusion.robots.policy;dur=0.008160, esindex;dur=0.012511, cdx.remote;dur=37.677772, LoadShardBlock;dur=184.127137, PetaboxLoader3.datanode;dur=204.836179, PetaboxLoader3.resolve;dur=191.140419, load_resource;dur=248.593293
x-app-server: wwwb-app221
x-ts: 301
x-tr: 494
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Thu, 21 Aug 2025 04:16:34 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: nginx/0.6.26
x-archive-orig-date: Fri, 23 Jan 2009 15:04:42 GMT
x-archive-orig-connection: close
x-archive-orig-set-cookie: _github_ses=BAh7ByIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7ADoOcmV0dXJuX3RvIh0vaW5ib3gvbmV3L3N0cmVldGNsZWFuZXI%3D--442482813f9ced19fa3e0677b155fa88b7f92c9d; path=/; expires=Wed, 01 Jan 2020 08:00:00 GMT; HttpOnly
x-archive-orig-status: 200 OK
x-archive-orig-x-runtime: 783ms
x-archive-orig-etag: "4263948647367384e5663a7696e044b3"
x-archive-orig-cache-control: private, max-age=0, must-revalidate
x-archive-orig-content-length: 20952
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Fri, 23 Jan 2009 15:04:42 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Tue, 23 Dec 2008 21:27:20 GMT", ; rel="prev memento"; datetime="Tue, 23 Dec 2008 21:27:20 GMT", ; rel="memento"; datetime="Fri, 23 Jan 2009 15:04:42 GMT", ; rel="next memento"; datetime="Thu, 29 Jan 2009 09:53:40 GMT", ; rel="last memento"; datetime="Mon, 11 Dec 2023 14:12:27 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_7_20090123134858_crawl100-c/52_7_20090123150404_crawl101.arc.gz
server-timing: captures_list;dur=0.485621, exclusion.robots;dur=0.015413, exclusion.robots.policy;dur=0.006886, esindex;dur=0.013037, cdx.remote;dur=6.755248, LoadShardBlock;dur=189.091625, PetaboxLoader3.datanode;dur=96.007520, PetaboxLoader3.resolve;dur=171.513520, load_resource;dur=121.032774
x-app-server: wwwb-app221
x-ts: 200
x-tr: 369
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
ffmike's user_event_logger at master - GitHub
This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (

This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (

Run the following if you haven't already:
gem sources -a https://gems.github.com
Install the gem(s):
sudo gem install ffmike-user_event_logger
Description: | Simple logging of user events for later reporting |
Clone URL: |
git://github.com/ffmike/user_event_logger.git
Give this clone URL to anyone.
git clone git://github.com/ffmike/user_event_logger.git
|
name | age | message | |
---|---|---|---|
![]() |
MIT-LICENSE | Loading commit data... ![]() |
|
![]() |
README | ||
![]() |
Rakefile | ||
![]() |
generators/ | ||
![]() |
init.rb | ||
![]() |
install.rb | ||
![]() |
lib/ | ||
![]() |
rails/ | ||
![]() |
tasks/ | ||
![]() |
test/ | ||
![]() |
uninstall.rb | ||
![]() |
user_event_logger.gemspec |
UserEventLogger =============== This plugin is extracted from several applications where I had similar problems: tracking various things that users did within the application. For example, I've used this to be able to log outgoing clicks without hooking up an analytics package, to count the number of times an ad was displayed, or to keep track of how often a particular page was visited. To use the plugin, you must first create the table that it uses: ./script/generate user_event_logger add_event_table rake db:migrate After that, you can add information to the table from either your controllers or your views: log_user_event "In controller", "https://example.com", "27" <%= log_user_event "In view", "https://example.com", "27" %> The first argument is the event name, which is required. The second is the destination URL, which is optional. The third is arbitrary extra data, which is optional. The extra data is stored in a text column, so you can add as much as you want here. Reporting is left as an exercise for the user. The events table has these columns: create_table :events do |t| t.column :source_url, :string t.column :destination_url, :string t.column :remote_ip, :string t.column :logged_at, :datetime t.column :extra_data, :text t.column :event_type, :string end Example ======= To do outgoing link tracking, you can set up a controller method similar to this one: def send_to @advertiser = Advertiser.find(params[:id]) destination_url = @advertiser.website.sub(/^www/, "https://www") log_user_event "Clicked through", destination_url, params[:id] redirect_to destination_url end Extra columns ============= You can add extra application-specific columns to the events table if you like. To do so, modify the migration to include the columns after you run the add_event_table rake task and before you run the migration. Then you can pass a hash of extra options as part of the call to log_user_event: log_user_event "In controller", "https://example.com", "27", {:user_id => 13, :product_id => 7} <%= log_user_event "In view", "https://example.com", "27", {:user_id => 13, :product_id => 7} %> Gem installation ================ If you are running rails 2.1 or above you can choose between a standard plugin install and a gem install. To install as a gem, add this to your environment.rb file: config.gem 'ffmike-user_event_logger', :source => 'https://gems.github.com' and then run: rake gems:install Copyright (c) 2008 Michael A. Gunderloy, released under the MIT license
This feature is coming soon. Sit tight!