redis_analytics 0.7.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/app/views/layouts/redis_analytics/application.html.erb +3 -3
  4. data/coverage/index.html +423 -381
  5. data/lib/redis_analytics/configuration.rb +73 -73
  6. data/lib/redis_analytics/engine.rb +7 -0
  7. data/lib/redis_analytics/filter.rb +22 -22
  8. data/lib/redis_analytics/helpers.rb +58 -58
  9. data/lib/redis_analytics/metrics.rb +73 -73
  10. data/lib/redis_analytics/version.rb +3 -3
  11. data/lib/redis_analytics/visit.rb +96 -96
  12. data/test/dummy/config/environments/production.rb +1 -1
  13. data/test/dummy/config/routes.rb +1 -1
  14. data/test/dummy/log/development.log +1185 -0
  15. data/test/dummy/log/production.log +5172 -0
  16. data/test/dummy/public/assets/application-c900658d554ff9f314a2e1b97cd68997.js.gz +0 -0
  17. data/test/dummy/public/assets/manifest-567012ae8b6f03148f7121062750991f.json +1 -0
  18. data/test/dummy/public/assets/redis_analytics/redis_analytics-82322234eccfd3d7c55a2034ee41ab2a.js +10785 -0
  19. data/test/dummy/public/assets/redis_analytics/redis_analytics-82322234eccfd3d7c55a2034ee41ab2a.js.gz +0 -0
  20. data/test/dummy/public/assets/redis_analytics/redis_analytics-f13abe0904b7483ea8c8c08029e97be3.css +64 -0
  21. data/test/dummy/public/assets/redis_analytics/redis_analytics-f13abe0904b7483ea8c8c08029e97be3.css.gz +0 -0
  22. data/test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  23. data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  24. data/test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  25. data/test/dummy/tmp/cache/assets/development/sprockets/3b2603753f496fe7b73a04ce200ea6c0 +0 -0
  26. data/test/dummy/tmp/cache/assets/development/sprockets/4b838eac074ecce8b8ae19c261677ab6 +0 -0
  27. data/test/dummy/tmp/cache/assets/development/sprockets/63afa0e9c559fa85d5c63b6f37728141 +0 -0
  28. data/test/dummy/tmp/cache/assets/development/sprockets/6d0077b1948c42a8892f40120649d217 +0 -0
  29. data/test/dummy/tmp/cache/assets/development/sprockets/a317f594a79c3dd49a6f88b49aabc1b5 +0 -0
  30. data/test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  31. data/test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  32. data/test/dummy/tmp/cache/assets/development/sprockets/f069f087fa68223029e7fb8547e5bc3b +0 -0
  33. data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  34. data/test/dummy/tmp/cache/assets/production/sprockets/006eb7cc017cf18c3ea32cab97f0cc3c +0 -0
  35. data/test/dummy/tmp/cache/assets/production/sprockets/192691b9e0bedebfde12633bb3629d0b +0 -0
  36. data/test/dummy/tmp/cache/assets/production/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  37. data/test/dummy/tmp/cache/assets/production/sprockets/3b2603753f496fe7b73a04ce200ea6c0 +0 -0
  38. data/test/dummy/tmp/cache/assets/production/sprockets/4b838eac074ecce8b8ae19c261677ab6 +0 -0
  39. data/test/dummy/tmp/cache/assets/production/sprockets/5cf60638cb580f41112a5a83eb3b72ef +0 -0
  40. data/test/dummy/tmp/cache/assets/production/sprockets/63afa0e9c559fa85d5c63b6f37728141 +0 -0
  41. data/test/dummy/tmp/cache/assets/production/sprockets/6c2f18f7338d56feecce32780357521c +0 -0
  42. data/test/dummy/tmp/cache/assets/production/sprockets/6d0077b1948c42a8892f40120649d217 +0 -0
  43. data/test/dummy/tmp/cache/assets/production/sprockets/7751914469530dae0646d92467e9d72e +0 -0
  44. data/test/dummy/tmp/cache/assets/production/sprockets/8d62150b658b3a8b6fed7e8951f52392 +0 -0
  45. data/test/dummy/tmp/cache/assets/production/sprockets/8ea331810c31cbe1ba34b91a02f769e7 +0 -0
  46. data/test/dummy/tmp/cache/assets/production/sprockets/953bc37b1ee0915247dba29773960202 +0 -0
  47. data/test/dummy/tmp/cache/assets/production/sprockets/9b54afa4ef026f4c288feeec49f2f526 +0 -0
  48. data/test/dummy/tmp/cache/assets/production/sprockets/a29d0dc527ff5ce1252ccf6370514620 +0 -0
  49. data/test/dummy/tmp/cache/assets/production/sprockets/a317f594a79c3dd49a6f88b49aabc1b5 +0 -0
  50. data/test/dummy/tmp/cache/assets/production/sprockets/b01583a39abd5ce0a3d2b2967c6f75bd +0 -0
  51. data/test/dummy/tmp/cache/assets/production/sprockets/cfdf466647e83eb93e0d6630e4b51a25 +0 -0
  52. data/test/dummy/tmp/cache/assets/production/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  53. data/test/dummy/tmp/cache/assets/production/sprockets/d7491740e7757fe2ec57fd6d25461e5c +0 -0
  54. data/test/dummy/tmp/cache/assets/production/sprockets/df16db3bfcc56fafc73b853b7999be1f +0 -0
  55. data/test/dummy/tmp/cache/assets/production/sprockets/e7bd439b274a2155050b47e5a64ea72d +0 -0
  56. data/test/dummy/tmp/cache/assets/production/sprockets/f069f087fa68223029e7fb8547e5bc3b +0 -0
  57. data/test/dummy/tmp/cache/assets/production/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  58. data/test/dummy/tmp/cache/assets/production/sprockets/f9a412f49281cc7e6512f0787f7ba05f +0 -0
  59. data/vendor/assets/javascripts/redis_analytics/{engine.js → redis_analytics.js} +6 -1
  60. data/vendor/assets/stylesheets/redis_analytics/{engine.css → redis_analytics.css} +3 -1
  61. metadata +43 -8
  62. data/app/views/redis_analytics/application/_footer.html.erb~ +0 -3
  63. data/app/views/redis_analytics/visits/_unique_visits_line.html.erb~ +0 -26
  64. data/app/views/redis_analytics/visits/index.html.erb~ +0 -71
  65. data/test/dummy/public/assets/manifest-5bcba723c313582b1d428fc3bf592b29.json +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b0ef5f23c2318259c84c82a4bdadc2807a98b9f4
4
- data.tar.gz: f7d5120d54362f3db06621fc3a0d2a8d49de5e56
3
+ metadata.gz: b6bc01271a182cc29d5f8a6d43e4a1c69200482e
4
+ data.tar.gz: 2a1e683b22a99c38ffd0d6827d26680a83d5848e
5
5
  SHA512:
6
- metadata.gz: dbf6336fa2e451e0a96cb19f0431a6d26ae9677f42442b8ec75a600f1d80d0b9006d1eedb950e5be8e57974017979622c887311c4be58a3f5231bdcf89c1aa0f
7
- data.tar.gz: caeb72ecf45491fbd8c147e1388c9a1dbd209ac903ea6820d2f814696884cb5dac16f08d045273252b1b909ea6bff5d79cae61350c6c92aa00e2949d50bbdcc7
6
+ metadata.gz: 39505f0c796497ee61aa5af928715995908e239df5b527fe9aef72dadfcd9eccd965e791a37004862b50891b7e33422a84a1d726c166d929ac968bbb830c8b94
7
+ data.tar.gz: 8772f2bd70034c535d449b9aa65e069ecf6e3ac27d236bb9482542dd07c16fce8eed30887d2cec2bbdb846190d6d2039c9ccf66685f6504c0944282d7f9047a2
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- redis_analytics (0.7.0)
4
+ redis_analytics (1.0.0)
5
5
  browser
6
6
  geoip
7
7
  jquery-rails
@@ -2,8 +2,8 @@
2
2
  <html>
3
3
  <head>
4
4
  <title>RedisAnalytics</title>
5
- <%= stylesheet_link_tag "redis_analytics/engine", :media => "all" %>
6
- <%= javascript_include_tag "redis_analytics/engine" %>
5
+ <%= stylesheet_link_tag "redis_analytics/redis_analytics", :media => "all" %>
6
+ <%= javascript_include_tag "redis_analytics/redis_analytics" %>
7
7
  <%= csrf_meta_tags %>
8
8
  </head>
9
9
  <body onload="changeTimeFrame('<%=@range%>')">
@@ -12,6 +12,6 @@
12
12
  <%= yield %>
13
13
 
14
14
  <%= render partial: 'footer', layout: false %>
15
- <%= javascript_include_tag "redis_analytics/bootstrap.min.js" %>
15
+ <%# javascript_include_tag "redis_analytics/bootstrap.min.js" %>
16
16
  </body>
17
17
  </html>
data/coverage/index.html CHANGED
@@ -14,27 +14,27 @@
14
14
  <img src="./assets/0.8.0/loading.gif" alt="loading"/>
15
15
  </div>
16
16
  <div id="wrapper" style="display:none;">
17
- <div class="timestamp">Generated <abbr class="timeago" title="2014-04-21T16:50:00+05:30">2014-04-21T16:50:00+05:30</abbr></div>
17
+ <div class="timestamp">Generated <abbr class="timeago" title="2014-05-17T00:31:13+05:30">2014-05-17T00:31:13+05:30</abbr></div>
18
18
  <ul class="group_tabs"></ul>
19
19
 
20
20
  <div id="content">
21
21
  <div class="file_list_container" id="AllFiles">
22
22
  <h2>
23
23
  <span class="group_name">All Files</span>
24
- (<span class="covered_percent"><span class="red">78.87%</span></span>
24
+ (<span class="covered_percent"><span class="red">78.67%</span></span>
25
25
  covered at
26
26
  <span class="covered_strength">
27
27
  <span class="green">
28
- 7.11
28
+ 7.07
29
29
  </span>
30
30
  </span> hits/line)
31
31
  </h2>
32
32
  <a name="AllFiles"></a>
33
33
  <div>
34
34
  <b>10</b> files in total.
35
- <b>284</b> relevant lines.
36
- <span class="green"><b>224</b> lines covered</span> and
37
- <span class="red"><b>60</b> lines missed </span>
35
+ <b>286</b> relevant lines.
36
+ <span class="green"><b>225</b> lines covered</span> and
37
+ <span class="red"><b>61</b> lines missed </span>
38
38
  </div>
39
39
  <table class="file_list">
40
40
  <thead>
@@ -72,11 +72,11 @@
72
72
 
73
73
  <tr>
74
74
  <td class="strong"><a href="#092dae03526444499262440a90b632344ec5532e" class="src_link" title="lib/redis_analytics/engine.rb">lib/redis_analytics/engine.rb</a></td>
75
- <td class="red strong">80.0 %</td>
76
- <td>18</td>
77
- <td>10</td>
78
- <td>8</td>
79
- <td>2</td>
75
+ <td class="red strong">75.0 %</td>
76
+ <td>25</td>
77
+ <td>12</td>
78
+ <td>9</td>
79
+ <td>3</td>
80
80
  <td>0.8</td>
81
81
  </tr>
82
82
 
@@ -315,25 +315,25 @@
315
315
  <li class="covered" data-hits="1" data-linenumber="1">
316
316
  <span class="hits">1</span>
317
317
 
318
- <code class="ruby"> module RedisAnalytics</code>
318
+ <code class="ruby">module RedisAnalytics</code>
319
319
  </li>
320
320
 
321
321
  <li class="covered" data-hits="1" data-linenumber="2">
322
322
  <span class="hits">1</span>
323
323
 
324
- <code class="ruby"> module Configuration</code>
324
+ <code class="ruby"> module Configuration</code>
325
325
  </li>
326
326
 
327
327
  <li class="never" data-hits="" data-linenumber="3">
328
328
 
329
329
 
330
- <code class="ruby"> # Redis connection instance</code>
330
+ <code class="ruby"> # Redis connection instance</code>
331
331
  </li>
332
332
 
333
333
  <li class="covered" data-hits="1" data-linenumber="4">
334
334
  <span class="hits">1</span>
335
335
 
336
- <code class="ruby"> attr_accessor :redis_connection</code>
336
+ <code class="ruby"> attr_accessor :redis_connection</code>
337
337
  </li>
338
338
 
339
339
  <li class="never" data-hits="" data-linenumber="5">
@@ -345,13 +345,13 @@
345
345
  <li class="never" data-hits="" data-linenumber="6">
346
346
 
347
347
 
348
- <code class="ruby"> # Redis namespace for keys</code>
348
+ <code class="ruby"> # Redis namespace for keys</code>
349
349
  </li>
350
350
 
351
351
  <li class="covered" data-hits="1" data-linenumber="7">
352
352
  <span class="hits">1</span>
353
353
 
354
- <code class="ruby"> attr_writer :redis_namespace</code>
354
+ <code class="ruby"> attr_writer :redis_namespace</code>
355
355
  </li>
356
356
 
357
357
  <li class="never" data-hits="" data-linenumber="8">
@@ -363,13 +363,13 @@
363
363
  <li class="never" data-hits="" data-linenumber="9">
364
364
 
365
365
 
366
- <code class="ruby"> # Name of the cookie which tracks first visitors</code>
366
+ <code class="ruby"> # Name of the cookie which tracks first visitors</code>
367
367
  </li>
368
368
 
369
369
  <li class="covered" data-hits="1" data-linenumber="10">
370
370
  <span class="hits">1</span>
371
371
 
372
- <code class="ruby"> attr_writer :first_visit_cookie_name</code>
372
+ <code class="ruby"> attr_writer :first_visit_cookie_name</code>
373
373
  </li>
374
374
 
375
375
  <li class="never" data-hits="" data-linenumber="11">
@@ -381,13 +381,13 @@
381
381
  <li class="never" data-hits="" data-linenumber="12">
382
382
 
383
383
 
384
- <code class="ruby"> # Name of the cookie which tracks current visits</code>
384
+ <code class="ruby"> # Name of the cookie which tracks current visits</code>
385
385
  </li>
386
386
 
387
387
  <li class="covered" data-hits="1" data-linenumber="13">
388
388
  <span class="hits">1</span>
389
389
 
390
- <code class="ruby"> attr_writer :current_visit_cookie_name</code>
390
+ <code class="ruby"> attr_writer :current_visit_cookie_name</code>
391
391
  </li>
392
392
 
393
393
  <li class="never" data-hits="" data-linenumber="14">
@@ -399,13 +399,13 @@
399
399
  <li class="never" data-hits="" data-linenumber="15">
400
400
 
401
401
 
402
- <code class="ruby"> # Minutes the visit should timeout after (if no hit is received)</code>
402
+ <code class="ruby"> # Minutes the visit should timeout after (if no hit is received)</code>
403
403
  </li>
404
404
 
405
405
  <li class="covered" data-hits="1" data-linenumber="16">
406
406
  <span class="hits">1</span>
407
407
 
408
- <code class="ruby"> attr_writer :visit_timeout</code>
408
+ <code class="ruby"> attr_writer :visit_timeout</code>
409
409
  </li>
410
410
 
411
411
  <li class="never" data-hits="" data-linenumber="17">
@@ -417,13 +417,13 @@
417
417
  <li class="never" data-hits="" data-linenumber="18">
418
418
 
419
419
 
420
- <code class="ruby"> # Endpoint for dashboard</code>
420
+ <code class="ruby"> # Endpoint for dashboard</code>
421
421
  </li>
422
422
 
423
423
  <li class="covered" data-hits="1" data-linenumber="19">
424
424
  <span class="hits">1</span>
425
425
 
426
- <code class="ruby"> attr_writer :dashboard_endpoint</code>
426
+ <code class="ruby"> attr_writer :dashboard_endpoint</code>
427
427
  </li>
428
428
 
429
429
  <li class="never" data-hits="" data-linenumber="20">
@@ -435,13 +435,13 @@
435
435
  <li class="never" data-hits="" data-linenumber="21">
436
436
 
437
437
 
438
- <code class="ruby"> # Endpoint for api</code>
438
+ <code class="ruby"> # Endpoint for api</code>
439
439
  </li>
440
440
 
441
441
  <li class="covered" data-hits="1" data-linenumber="22">
442
442
  <span class="hits">1</span>
443
443
 
444
- <code class="ruby"> attr_writer :api_endpoint</code>
444
+ <code class="ruby"> attr_writer :api_endpoint</code>
445
445
  </li>
446
446
 
447
447
  <li class="never" data-hits="" data-linenumber="23">
@@ -453,7 +453,7 @@
453
453
  <li class="covered" data-hits="1" data-linenumber="24">
454
454
  <span class="hits">1</span>
455
455
 
456
- <code class="ruby"> attr_writer :path_filters</code>
456
+ <code class="ruby"> attr_writer :path_filters</code>
457
457
  </li>
458
458
 
459
459
  <li class="never" data-hits="" data-linenumber="25">
@@ -465,7 +465,7 @@
465
465
  <li class="covered" data-hits="1" data-linenumber="26">
466
466
  <span class="hits">1</span>
467
467
 
468
- <code class="ruby"> attr_writer :filters</code>
468
+ <code class="ruby"> attr_writer :filters</code>
469
469
  </li>
470
470
 
471
471
  <li class="never" data-hits="" data-linenumber="27">
@@ -477,13 +477,13 @@
477
477
  <li class="never" data-hits="" data-linenumber="28">
478
478
 
479
479
 
480
- <code class="ruby"> # Path to the Geo IP Database file</code>
480
+ <code class="ruby"> # Path to the Geo IP Database file</code>
481
481
  </li>
482
482
 
483
483
  <li class="covered" data-hits="1" data-linenumber="29">
484
484
  <span class="hits">1</span>
485
485
 
486
- <code class="ruby"> attr_writer :geo_ip_data_path</code>
486
+ <code class="ruby"> attr_writer :geo_ip_data_path</code>
487
487
  </li>
488
488
 
489
489
  <li class="never" data-hits="" data-linenumber="30">
@@ -495,25 +495,25 @@
495
495
  <li class="never" data-hits="" data-linenumber="31">
496
496
 
497
497
 
498
- <code class="ruby"> # Redis namespace for keys</code>
498
+ <code class="ruby"> # Redis namespace for keys</code>
499
499
  </li>
500
500
 
501
501
  <li class="covered" data-hits="1" data-linenumber="32">
502
502
  <span class="hits">1</span>
503
503
 
504
- <code class="ruby"> def redis_namespace</code>
504
+ <code class="ruby"> def redis_namespace</code>
505
505
  </li>
506
506
 
507
507
  <li class="covered" data-hits="6" data-linenumber="33">
508
508
  <span class="hits">6</span>
509
509
 
510
- <code class="ruby"> @redis_namespace ||= &#39;ra&#39;</code>
510
+ <code class="ruby"> @redis_namespace ||= &#39;ra&#39;</code>
511
511
  </li>
512
512
 
513
513
  <li class="never" data-hits="" data-linenumber="34">
514
514
 
515
515
 
516
- <code class="ruby"> end</code>
516
+ <code class="ruby"> end</code>
517
517
  </li>
518
518
 
519
519
  <li class="never" data-hits="" data-linenumber="35">
@@ -525,25 +525,25 @@
525
525
  <li class="never" data-hits="" data-linenumber="36">
526
526
 
527
527
 
528
- <code class="ruby"> # Minutes the visit should timeout after (if no hit is received)</code>
528
+ <code class="ruby"> # Minutes the visit should timeout after (if no hit is received)</code>
529
529
  </li>
530
530
 
531
531
  <li class="covered" data-hits="1" data-linenumber="37">
532
532
  <span class="hits">1</span>
533
533
 
534
- <code class="ruby"> def visit_timeout</code>
534
+ <code class="ruby"> def visit_timeout</code>
535
535
  </li>
536
536
 
537
537
  <li class="covered" data-hits="6" data-linenumber="38">
538
538
  <span class="hits">6</span>
539
539
 
540
- <code class="ruby"> @visit_timeout ||= 30 # minutes</code>
540
+ <code class="ruby"> @visit_timeout ||= 30 # minutes</code>
541
541
  </li>
542
542
 
543
543
  <li class="never" data-hits="" data-linenumber="39">
544
544
 
545
545
 
546
- <code class="ruby"> end</code>
546
+ <code class="ruby"> end</code>
547
547
  </li>
548
548
 
549
549
  <li class="never" data-hits="" data-linenumber="40">
@@ -555,25 +555,25 @@
555
555
  <li class="never" data-hits="" data-linenumber="41">
556
556
 
557
557
 
558
- <code class="ruby"> # Name of the cookie which tracks first visitors (unknown visitors)</code>
558
+ <code class="ruby"> # Name of the cookie which tracks first visitors (unknown visitors)</code>
559
559
  </li>
560
560
 
561
561
  <li class="covered" data-hits="1" data-linenumber="42">
562
562
  <span class="hits">1</span>
563
563
 
564
- <code class="ruby"> def first_visit_cookie_name</code>
564
+ <code class="ruby"> def first_visit_cookie_name</code>
565
565
  </li>
566
566
 
567
567
  <li class="covered" data-hits="22" data-linenumber="43">
568
568
  <span class="hits">22</span>
569
569
 
570
- <code class="ruby"> @first_visit_cookie_name ||= &#39;_rucn&#39;</code>
570
+ <code class="ruby"> @first_visit_cookie_name ||= &#39;_rucn&#39;</code>
571
571
  </li>
572
572
 
573
573
  <li class="never" data-hits="" data-linenumber="44">
574
574
 
575
575
 
576
- <code class="ruby"> end</code>
576
+ <code class="ruby"> end</code>
577
577
  </li>
578
578
 
579
579
  <li class="never" data-hits="" data-linenumber="45">
@@ -585,25 +585,25 @@
585
585
  <li class="never" data-hits="" data-linenumber="46">
586
586
 
587
587
 
588
- <code class="ruby"> # Name of the cookie which tracks visits</code>
588
+ <code class="ruby"> # Name of the cookie which tracks visits</code>
589
589
  </li>
590
590
 
591
591
  <li class="covered" data-hits="1" data-linenumber="47">
592
592
  <span class="hits">1</span>
593
593
 
594
- <code class="ruby"> def current_visit_cookie_name</code>
594
+ <code class="ruby"> def current_visit_cookie_name</code>
595
595
  </li>
596
596
 
597
597
  <li class="covered" data-hits="29" data-linenumber="48">
598
598
  <span class="hits">29</span>
599
599
 
600
- <code class="ruby"> @current_visit_cookie_name ||= &#39;_vcn&#39;</code>
600
+ <code class="ruby"> @current_visit_cookie_name ||= &#39;_vcn&#39;</code>
601
601
  </li>
602
602
 
603
603
  <li class="never" data-hits="" data-linenumber="49">
604
604
 
605
605
 
606
- <code class="ruby"> end</code>
606
+ <code class="ruby"> end</code>
607
607
  </li>
608
608
 
609
609
  <li class="never" data-hits="" data-linenumber="50">
@@ -615,19 +615,19 @@
615
615
  <li class="covered" data-hits="1" data-linenumber="51">
616
616
  <span class="hits">1</span>
617
617
 
618
- <code class="ruby"> def filters</code>
618
+ <code class="ruby"> def filters</code>
619
619
  </li>
620
620
 
621
621
  <li class="covered" data-hits="6" data-linenumber="52">
622
622
  <span class="hits">6</span>
623
623
 
624
- <code class="ruby"> @filters ||= []</code>
624
+ <code class="ruby"> @filters ||= []</code>
625
625
  </li>
626
626
 
627
627
  <li class="never" data-hits="" data-linenumber="53">
628
628
 
629
629
 
630
- <code class="ruby"> end</code>
630
+ <code class="ruby"> end</code>
631
631
  </li>
632
632
 
633
633
  <li class="never" data-hits="" data-linenumber="54">
@@ -639,19 +639,19 @@
639
639
  <li class="covered" data-hits="1" data-linenumber="55">
640
640
  <span class="hits">1</span>
641
641
 
642
- <code class="ruby"> def path_filters</code>
642
+ <code class="ruby"> def path_filters</code>
643
643
  </li>
644
644
 
645
645
  <li class="covered" data-hits="6" data-linenumber="56">
646
646
  <span class="hits">6</span>
647
647
 
648
- <code class="ruby"> @path_filters ||= []</code>
648
+ <code class="ruby"> @path_filters ||= []</code>
649
649
  </li>
650
650
 
651
651
  <li class="never" data-hits="" data-linenumber="57">
652
652
 
653
653
 
654
- <code class="ruby"> end</code>
654
+ <code class="ruby"> end</code>
655
655
  </li>
656
656
 
657
657
  <li class="never" data-hits="" data-linenumber="58">
@@ -663,19 +663,19 @@
663
663
  <li class="covered" data-hits="1" data-linenumber="59">
664
664
  <span class="hits">1</span>
665
665
 
666
- <code class="ruby"> def add_filter(&amp;proc)</code>
666
+ <code class="ruby"> def add_filter(&amp;proc)</code>
667
667
  </li>
668
668
 
669
669
  <li class="covered" data-hits="1" data-linenumber="60">
670
670
  <span class="hits">1</span>
671
671
 
672
- <code class="ruby"> filters &lt;&lt; RedisAnalytics::Filter.new(proc)</code>
672
+ <code class="ruby"> filters &lt;&lt; RedisAnalytics::Filter.new(proc)</code>
673
673
  </li>
674
674
 
675
675
  <li class="never" data-hits="" data-linenumber="61">
676
676
 
677
677
 
678
- <code class="ruby"> end</code>
678
+ <code class="ruby"> end</code>
679
679
  </li>
680
680
 
681
681
  <li class="never" data-hits="" data-linenumber="62">
@@ -687,19 +687,19 @@
687
687
  <li class="covered" data-hits="1" data-linenumber="63">
688
688
  <span class="hits">1</span>
689
689
 
690
- <code class="ruby"> def add_path_filter(path)</code>
690
+ <code class="ruby"> def add_path_filter(path)</code>
691
691
  </li>
692
692
 
693
693
  <li class="covered" data-hits="1" data-linenumber="64">
694
694
  <span class="hits">1</span>
695
695
 
696
- <code class="ruby"> path_filters &lt;&lt; RedisAnalytics::PathFilter.new(path)</code>
696
+ <code class="ruby"> path_filters &lt;&lt; RedisAnalytics::PathFilter.new(path)</code>
697
697
  </li>
698
698
 
699
699
  <li class="never" data-hits="" data-linenumber="65">
700
700
 
701
701
 
702
- <code class="ruby"> end</code>
702
+ <code class="ruby"> end</code>
703
703
  </li>
704
704
 
705
705
  <li class="never" data-hits="" data-linenumber="66">
@@ -711,19 +711,19 @@
711
711
  <li class="covered" data-hits="1" data-linenumber="67">
712
712
  <span class="hits">1</span>
713
713
 
714
- <code class="ruby"> def geo_ip_data_path</code>
714
+ <code class="ruby"> def geo_ip_data_path</code>
715
715
  </li>
716
716
 
717
717
  <li class="covered" data-hits="3" data-linenumber="68">
718
718
  <span class="hits">3</span>
719
719
 
720
- <code class="ruby"> @geo_ip_data_path = ::File.expand_path(::File.join(::File.dirname(__FILE__),&#39;..&#39;,&#39;..&#39;)) + &quot;/bin/GeoIP.dat&quot;</code>
720
+ <code class="ruby"> @geo_ip_data_path = ::File.expand_path(::File.join(::File.dirname(__FILE__),&#39;..&#39;,&#39;..&#39;)) + &quot;/bin/GeoIP.dat&quot;</code>
721
721
  </li>
722
722
 
723
723
  <li class="never" data-hits="" data-linenumber="69">
724
724
 
725
725
 
726
- <code class="ruby"> end</code>
726
+ <code class="ruby"> end</code>
727
727
  </li>
728
728
 
729
729
  <li class="never" data-hits="" data-linenumber="70">
@@ -735,19 +735,19 @@
735
735
  <li class="covered" data-hits="1" data-linenumber="71">
736
736
  <span class="hits">1</span>
737
737
 
738
- <code class="ruby"> def visitor_recency_slices</code>
738
+ <code class="ruby"> def visitor_recency_slices</code>
739
739
  </li>
740
740
 
741
741
  <li class="covered" data-hits="2" data-linenumber="72">
742
742
  <span class="hits">2</span>
743
743
 
744
- <code class="ruby"> @visitor_recency_slices ||= [1, 7, 30]</code>
744
+ <code class="ruby"> @visitor_recency_slices ||= [1, 7, 30]</code>
745
745
  </li>
746
746
 
747
747
  <li class="never" data-hits="" data-linenumber="73">
748
748
 
749
749
 
750
- <code class="ruby"> end</code>
750
+ <code class="ruby"> end</code>
751
751
  </li>
752
752
 
753
753
  <li class="never" data-hits="" data-linenumber="74">
@@ -759,19 +759,19 @@
759
759
  <li class="covered" data-hits="1" data-linenumber="75">
760
760
  <span class="hits">1</span>
761
761
 
762
- <code class="ruby"> def default_range</code>
762
+ <code class="ruby"> def default_range</code>
763
763
  </li>
764
764
 
765
765
  <li class="covered" data-hits="3" data-linenumber="76">
766
766
  <span class="hits">3</span>
767
767
 
768
- <code class="ruby"> @default_range = :day</code>
768
+ <code class="ruby"> @default_range = :day</code>
769
769
  </li>
770
770
 
771
771
  <li class="never" data-hits="" data-linenumber="77">
772
772
 
773
773
 
774
- <code class="ruby"> end</code>
774
+ <code class="ruby"> end</code>
775
775
  </li>
776
776
 
777
777
  <li class="never" data-hits="" data-linenumber="78">
@@ -783,19 +783,19 @@
783
783
  <li class="covered" data-hits="1" data-linenumber="79">
784
784
  <span class="hits">1</span>
785
785
 
786
- <code class="ruby"> def redis_key_timestamps # [format, expire in seconds or nil]</code>
786
+ <code class="ruby"> def redis_key_timestamps # [format, expire in seconds or nil]</code>
787
787
  </li>
788
788
 
789
789
  <li class="covered" data-hits="40" data-linenumber="80">
790
790
  <span class="hits">40</span>
791
791
 
792
- <code class="ruby"> [&#39;%Y&#39;, &#39;%Y_%m&#39;, &#39;%Y_%m_%d&#39;, &#39;%Y_%m_%d_%H&#39;, &#39;%Y_%m_%d_%H_%M&#39;]</code>
792
+ <code class="ruby"> [&#39;%Y&#39;, &#39;%Y_%m&#39;, &#39;%Y_%m_%d&#39;, &#39;%Y_%m_%d_%H&#39;, &#39;%Y_%m_%d_%H_%M&#39;]</code>
793
793
  </li>
794
794
 
795
795
  <li class="never" data-hits="" data-linenumber="81">
796
796
 
797
797
 
798
- <code class="ruby"> end</code>
798
+ <code class="ruby"> end</code>
799
799
  </li>
800
800
 
801
801
  <li class="never" data-hits="" data-linenumber="82">
@@ -807,19 +807,19 @@
807
807
  <li class="covered" data-hits="1" data-linenumber="83">
808
808
  <span class="hits">1</span>
809
809
 
810
- <code class="ruby"> def time_range_formats</code>
810
+ <code class="ruby"> def time_range_formats</code>
811
811
  </li>
812
812
 
813
813
  <li class="covered" data-hits="2" data-linenumber="84">
814
814
  <span class="hits">2</span>
815
815
 
816
- <code class="ruby"> [[:year, :month, &quot;%b&quot;], [:week, :day, &quot;%a&quot;], [:day, :hour, &quot;%l%P&quot;]]</code>
816
+ <code class="ruby"> [[:year, :month, &quot;%b&quot;], [:week, :day, &quot;%a&quot;], [:day, :hour, &quot;%l%P&quot;]]</code>
817
817
  </li>
818
818
 
819
819
  <li class="never" data-hits="" data-linenumber="85">
820
820
 
821
821
 
822
- <code class="ruby"> end</code>
822
+ <code class="ruby"> end</code>
823
823
  </li>
824
824
 
825
825
  <li class="never" data-hits="" data-linenumber="86">
@@ -831,19 +831,19 @@
831
831
  <li class="covered" data-hits="1" data-linenumber="87">
832
832
  <span class="hits">1</span>
833
833
 
834
- <code class="ruby"> def configure</code>
834
+ <code class="ruby"> def configure</code>
835
835
  </li>
836
836
 
837
837
  <li class="covered" data-hits="6" data-linenumber="88">
838
838
  <span class="hits">6</span>
839
839
 
840
- <code class="ruby"> yield self</code>
840
+ <code class="ruby"> yield self</code>
841
841
  </li>
842
842
 
843
843
  <li class="never" data-hits="" data-linenumber="89">
844
844
 
845
845
 
846
- <code class="ruby"> end</code>
846
+ <code class="ruby"> end</code>
847
847
  </li>
848
848
 
849
849
  <li class="never" data-hits="" data-linenumber="90">
@@ -855,19 +855,19 @@
855
855
  <li class="covered" data-hits="1" data-linenumber="91">
856
856
  <span class="hits">1</span>
857
857
 
858
- <code class="ruby"> def api_endpoint</code>
858
+ <code class="ruby"> def api_endpoint</code>
859
859
  </li>
860
860
 
861
861
  <li class="missed" data-hits="0" data-linenumber="92">
862
862
 
863
863
 
864
- <code class="ruby"> @api_endpoint || dashboard_endpoint + &#39;/api&#39;</code>
864
+ <code class="ruby"> @api_endpoint || dashboard_endpoint + &#39;/api&#39;</code>
865
865
  </li>
866
866
 
867
867
  <li class="never" data-hits="" data-linenumber="93">
868
868
 
869
869
 
870
- <code class="ruby"> end</code>
870
+ <code class="ruby"> end</code>
871
871
  </li>
872
872
 
873
873
  <li class="never" data-hits="" data-linenumber="94">
@@ -879,19 +879,19 @@
879
879
  <li class="covered" data-hits="1" data-linenumber="95">
880
880
  <span class="hits">1</span>
881
881
 
882
- <code class="ruby"> def dashboard_endpoint</code>
882
+ <code class="ruby"> def dashboard_endpoint</code>
883
883
  </li>
884
884
 
885
885
  <li class="missed" data-hits="0" data-linenumber="96">
886
886
 
887
887
 
888
- <code class="ruby"> @dashboard_endpoint || &#39;/redis_analytics&#39;</code>
888
+ <code class="ruby"> @dashboard_endpoint || &#39;/redis_analytics&#39;</code>
889
889
  </li>
890
890
 
891
891
  <li class="never" data-hits="" data-linenumber="97">
892
892
 
893
893
 
894
- <code class="ruby"> end</code>
894
+ <code class="ruby"> end</code>
895
895
  </li>
896
896
 
897
897
  <li class="never" data-hits="" data-linenumber="98">
@@ -903,13 +903,13 @@
903
903
  <li class="never" data-hits="" data-linenumber="99">
904
904
 
905
905
 
906
- <code class="ruby"> end</code>
906
+ <code class="ruby"> end</code>
907
907
  </li>
908
908
 
909
909
  <li class="never" data-hits="" data-linenumber="100">
910
910
 
911
911
 
912
- <code class="ruby"> end</code>
912
+ <code class="ruby">end</code>
913
913
  </li>
914
914
 
915
915
  <li class="never" data-hits="" data-linenumber="101">
@@ -925,11 +925,11 @@
925
925
  <div class="source_table" id="092dae03526444499262440a90b632344ec5532e">
926
926
  <div class="header">
927
927
  <h3>lib/redis_analytics/engine.rb</h3>
928
- <h4><span class="red">80.0 %</span> covered</h4>
928
+ <h4><span class="red">75.0 %</span> covered</h4>
929
929
  <div>
930
- <b>10</b> relevant lines.
931
- <span class="green"><b>8</b> lines covered</span> and
932
- <span class="red"><b>2</b> lines missed.</span>
930
+ <b>12</b> relevant lines.
931
+ <span class="green"><b>9</b> lines covered</span> and
932
+ <span class="red"><b>3</b> lines missed.</span>
933
933
  </div>
934
934
  </div>
935
935
 
@@ -969,76 +969,118 @@
969
969
  <li class="covered" data-hits="1" data-linenumber="6">
970
970
  <span class="hits">1</span>
971
971
 
972
- <code class="ruby"> class Engine &lt; ::Rails::Engine</code>
972
+ <code class="ruby"> class Engine &lt; ::Rails::Engine</code>
973
973
  </li>
974
974
 
975
975
  <li class="covered" data-hits="1" data-linenumber="7">
976
976
  <span class="hits">1</span>
977
977
 
978
- <code class="ruby"> isolate_namespace RedisAnalytics</code>
978
+ <code class="ruby"> isolate_namespace RedisAnalytics</code>
979
979
  </li>
980
980
 
981
981
  <li class="never" data-hits="" data-linenumber="8">
982
982
 
983
983
 
984
- <code class="ruby"> </code>
984
+ <code class="ruby"> </code>
985
985
  </li>
986
986
 
987
987
  <li class="covered" data-hits="1" data-linenumber="9">
988
988
  <span class="hits">1</span>
989
989
 
990
- <code class="ruby"> initializer &quot;redis_analytics.middleware&quot; do |app|</code>
990
+ <code class="ruby"> initializer &quot;redis_analytics.middleware&quot; do |app|</code>
991
991
  </li>
992
992
 
993
993
  <li class="missed" data-hits="0" data-linenumber="10">
994
994
 
995
995
 
996
- <code class="ruby"> app.config.app_middleware.use &quot;RedisAnalytics::Tracker&quot;</code>
996
+ <code class="ruby"> app.config.app_middleware.use &quot;RedisAnalytics::Tracker&quot;</code>
997
997
  </li>
998
998
 
999
999
  <li class="never" data-hits="" data-linenumber="11">
1000
1000
 
1001
1001
 
1002
- <code class="ruby"> end</code>
1002
+ <code class="ruby"> end</code>
1003
1003
  </li>
1004
1004
 
1005
1005
  <li class="never" data-hits="" data-linenumber="12">
1006
1006
 
1007
1007
 
1008
- <code class="ruby"> </code>
1008
+ <code class="ruby"> </code>
1009
1009
  </li>
1010
1010
 
1011
1011
  <li class="covered" data-hits="1" data-linenumber="13">
1012
1012
  <span class="hits">1</span>
1013
1013
 
1014
- <code class="ruby"> initializer &quot;redis_analytics.view_helpers&quot; do |app|</code>
1014
+ <code class="ruby"> initializer &quot;redis_analytics.view_helpers&quot; do |app|</code>
1015
1015
  </li>
1016
1016
 
1017
1017
  <li class="missed" data-hits="0" data-linenumber="14">
1018
1018
 
1019
1019
 
1020
- <code class="ruby"> ActionController::Base.send :include, RedisAnalytics::Helpers</code>
1020
+ <code class="ruby"> ActionController::Base.send :include, RedisAnalytics::Helpers</code>
1021
1021
  </li>
1022
1022
 
1023
1023
  <li class="never" data-hits="" data-linenumber="15">
1024
1024
 
1025
1025
 
1026
- <code class="ruby"> end</code>
1026
+ <code class="ruby"> end</code>
1027
1027
  </li>
1028
1028
 
1029
1029
  <li class="never" data-hits="" data-linenumber="16">
1030
1030
 
1031
1031
 
1032
- <code class="ruby"> end</code>
1032
+ <code class="ruby"> </code>
1033
1033
  </li>
1034
1034
 
1035
- <li class="never" data-hits="" data-linenumber="17">
1035
+ <li class="covered" data-hits="1" data-linenumber="17">
1036
+ <span class="hits">1</span>
1037
+
1038
+ <code class="ruby"> initializer &quot;redis_analytics.precompile.hook&quot;, group: :all do |app|</code>
1039
+ </li>
1040
+
1041
+ <li class="missed" data-hits="0" data-linenumber="18">
1042
+
1043
+
1044
+ <code class="ruby"> app.config.assets.precompile += %w[</code>
1045
+ </li>
1046
+
1047
+ <li class="never" data-hits="" data-linenumber="19">
1048
+
1049
+
1050
+ <code class="ruby"> redis_analytics/redis_analytics.js</code>
1051
+ </li>
1052
+
1053
+ <li class="never" data-hits="" data-linenumber="20">
1054
+
1055
+
1056
+ <code class="ruby"> redis_analytics/redis_analytics.css</code>
1057
+ </li>
1058
+
1059
+ <li class="never" data-hits="" data-linenumber="21">
1060
+
1061
+
1062
+ <code class="ruby"> ]</code>
1063
+ </li>
1064
+
1065
+ <li class="never" data-hits="" data-linenumber="22">
1066
+
1067
+
1068
+ <code class="ruby"> end</code>
1069
+ </li>
1070
+
1071
+ <li class="never" data-hits="" data-linenumber="23">
1072
+
1073
+
1074
+ <code class="ruby"> end</code>
1075
+ </li>
1076
+
1077
+ <li class="never" data-hits="" data-linenumber="24">
1036
1078
 
1037
1079
 
1038
1080
  <code class="ruby"> end</code>
1039
1081
  </li>
1040
1082
 
1041
- <li class="never" data-hits="" data-linenumber="18">
1083
+ <li class="never" data-hits="" data-linenumber="25">
1042
1084
 
1043
1085
 
1044
1086
  <code class="ruby">end</code>
@@ -1065,19 +1107,19 @@
1065
1107
  <li class="covered" data-hits="1" data-linenumber="1">
1066
1108
  <span class="hits">1</span>
1067
1109
 
1068
- <code class="ruby"> module RedisAnalytics</code>
1110
+ <code class="ruby">module RedisAnalytics</code>
1069
1111
  </li>
1070
1112
 
1071
1113
  <li class="covered" data-hits="1" data-linenumber="2">
1072
1114
  <span class="hits">1</span>
1073
1115
 
1074
- <code class="ruby"> class Filter</code>
1116
+ <code class="ruby"> class Filter</code>
1075
1117
  </li>
1076
1118
 
1077
1119
  <li class="covered" data-hits="1" data-linenumber="3">
1078
1120
  <span class="hits">1</span>
1079
1121
 
1080
- <code class="ruby"> attr_reader :filter_proc</code>
1122
+ <code class="ruby"> attr_reader :filter_proc</code>
1081
1123
  </li>
1082
1124
 
1083
1125
  <li class="never" data-hits="" data-linenumber="4">
@@ -1089,19 +1131,19 @@
1089
1131
  <li class="covered" data-hits="1" data-linenumber="5">
1090
1132
  <span class="hits">1</span>
1091
1133
 
1092
- <code class="ruby"> def initialize(filter_proc)</code>
1134
+ <code class="ruby"> def initialize(filter_proc)</code>
1093
1135
  </li>
1094
1136
 
1095
1137
  <li class="covered" data-hits="2" data-linenumber="6">
1096
1138
  <span class="hits">2</span>
1097
1139
 
1098
- <code class="ruby"> @filter_proc = filter_proc</code>
1140
+ <code class="ruby"> @filter_proc = filter_proc</code>
1099
1141
  </li>
1100
1142
 
1101
1143
  <li class="never" data-hits="" data-linenumber="7">
1102
1144
 
1103
1145
 
1104
- <code class="ruby"> end</code>
1146
+ <code class="ruby"> end</code>
1105
1147
  </li>
1106
1148
 
1107
1149
  <li class="never" data-hits="" data-linenumber="8">
@@ -1113,19 +1155,19 @@
1113
1155
  <li class="covered" data-hits="1" data-linenumber="9">
1114
1156
  <span class="hits">1</span>
1115
1157
 
1116
- <code class="ruby"> def matches?(request, response)</code>
1158
+ <code class="ruby"> def matches?(request, response)</code>
1117
1159
  </li>
1118
1160
 
1119
1161
  <li class="covered" data-hits="5" data-linenumber="10">
1120
1162
  <span class="hits">5</span>
1121
1163
 
1122
- <code class="ruby"> filter_proc.call(request, response)</code>
1164
+ <code class="ruby"> filter_proc.call(request, response)</code>
1123
1165
  </li>
1124
1166
 
1125
1167
  <li class="never" data-hits="" data-linenumber="11">
1126
1168
 
1127
1169
 
1128
- <code class="ruby"> end</code>
1170
+ <code class="ruby"> end</code>
1129
1171
  </li>
1130
1172
 
1131
1173
  <li class="never" data-hits="" data-linenumber="12">
@@ -1137,7 +1179,7 @@
1137
1179
  <li class="never" data-hits="" data-linenumber="13">
1138
1180
 
1139
1181
 
1140
- <code class="ruby"> end</code>
1182
+ <code class="ruby"> end</code>
1141
1183
  </li>
1142
1184
 
1143
1185
  <li class="never" data-hits="" data-linenumber="14">
@@ -1149,13 +1191,13 @@
1149
1191
  <li class="covered" data-hits="1" data-linenumber="15">
1150
1192
  <span class="hits">1</span>
1151
1193
 
1152
- <code class="ruby"> class PathFilter</code>
1194
+ <code class="ruby"> class PathFilter</code>
1153
1195
  </li>
1154
1196
 
1155
1197
  <li class="covered" data-hits="1" data-linenumber="16">
1156
1198
  <span class="hits">1</span>
1157
1199
 
1158
- <code class="ruby"> attr_reader :filter_path</code>
1200
+ <code class="ruby"> attr_reader :filter_path</code>
1159
1201
  </li>
1160
1202
 
1161
1203
  <li class="never" data-hits="" data-linenumber="17">
@@ -1167,19 +1209,19 @@
1167
1209
  <li class="covered" data-hits="1" data-linenumber="18">
1168
1210
  <span class="hits">1</span>
1169
1211
 
1170
- <code class="ruby"> def initialize(filter_path)</code>
1212
+ <code class="ruby"> def initialize(filter_path)</code>
1171
1213
  </li>
1172
1214
 
1173
1215
  <li class="covered" data-hits="3" data-linenumber="19">
1174
1216
  <span class="hits">3</span>
1175
1217
 
1176
- <code class="ruby"> @filter_path = filter_path</code>
1218
+ <code class="ruby"> @filter_path = filter_path</code>
1177
1219
  </li>
1178
1220
 
1179
1221
  <li class="never" data-hits="" data-linenumber="20">
1180
1222
 
1181
1223
 
1182
- <code class="ruby"> end</code>
1224
+ <code class="ruby"> end</code>
1183
1225
  </li>
1184
1226
 
1185
1227
  <li class="never" data-hits="" data-linenumber="21">
@@ -1191,49 +1233,49 @@
1191
1233
  <li class="covered" data-hits="1" data-linenumber="22">
1192
1234
  <span class="hits">1</span>
1193
1235
 
1194
- <code class="ruby"> def matches?(request_path)</code>
1236
+ <code class="ruby"> def matches?(request_path)</code>
1195
1237
  </li>
1196
1238
 
1197
1239
  <li class="covered" data-hits="6" data-linenumber="23">
1198
1240
  <span class="hits">6</span>
1199
1241
 
1200
- <code class="ruby"> if filter_path.is_a?(String)</code>
1242
+ <code class="ruby"> if filter_path.is_a?(String)</code>
1201
1243
  </li>
1202
1244
 
1203
1245
  <li class="covered" data-hits="5" data-linenumber="24">
1204
1246
  <span class="hits">5</span>
1205
1247
 
1206
- <code class="ruby"> request_path == filter_path</code>
1248
+ <code class="ruby"> request_path == filter_path</code>
1207
1249
  </li>
1208
1250
 
1209
1251
  <li class="covered" data-hits="1" data-linenumber="25">
1210
1252
  <span class="hits">1</span>
1211
1253
 
1212
- <code class="ruby"> elsif filter_path.is_a?(Regexp)</code>
1254
+ <code class="ruby"> elsif filter_path.is_a?(Regexp)</code>
1213
1255
  </li>
1214
1256
 
1215
1257
  <li class="covered" data-hits="1" data-linenumber="26">
1216
1258
  <span class="hits">1</span>
1217
1259
 
1218
- <code class="ruby"> request_path =~ filter_path</code>
1260
+ <code class="ruby"> request_path =~ filter_path</code>
1219
1261
  </li>
1220
1262
 
1221
1263
  <li class="never" data-hits="" data-linenumber="27">
1222
1264
 
1223
1265
 
1224
- <code class="ruby"> end</code>
1266
+ <code class="ruby"> end</code>
1225
1267
  </li>
1226
1268
 
1227
1269
  <li class="never" data-hits="" data-linenumber="28">
1228
1270
 
1229
1271
 
1230
- <code class="ruby"> end</code>
1272
+ <code class="ruby"> end</code>
1231
1273
  </li>
1232
1274
 
1233
1275
  <li class="never" data-hits="" data-linenumber="29">
1234
1276
 
1235
1277
 
1236
- <code class="ruby"> end</code>
1278
+ <code class="ruby"> end</code>
1237
1279
  </li>
1238
1280
 
1239
1281
  <li class="never" data-hits="" data-linenumber="30">
@@ -1245,7 +1287,7 @@
1245
1287
  <li class="never" data-hits="" data-linenumber="31">
1246
1288
 
1247
1289
 
1248
- <code class="ruby"> end</code>
1290
+ <code class="ruby">end</code>
1249
1291
  </li>
1250
1292
 
1251
1293
  <li class="never" data-hits="" data-linenumber="32">
@@ -1275,13 +1317,13 @@
1275
1317
  <li class="covered" data-hits="1" data-linenumber="1">
1276
1318
  <span class="hits">1</span>
1277
1319
 
1278
- <code class="ruby"> module RedisAnalytics</code>
1320
+ <code class="ruby">module RedisAnalytics</code>
1279
1321
  </li>
1280
1322
 
1281
1323
  <li class="covered" data-hits="1" data-linenumber="2">
1282
1324
  <span class="hits">1</span>
1283
1325
 
1284
- <code class="ruby"> module Helpers</code>
1326
+ <code class="ruby"> module Helpers</code>
1285
1327
  </li>
1286
1328
 
1287
1329
  <li class="never" data-hits="" data-linenumber="3">
@@ -1293,7 +1335,7 @@
1293
1335
  <li class="covered" data-hits="1" data-linenumber="4">
1294
1336
  <span class="hits">1</span>
1295
1337
 
1296
- <code class="ruby"> FORMAT_SPECIFIER = [[&#39;%Y&#39;, 365], [&#39;%m&#39;, 30], [&#39;%d&#39;, 24], [&#39;%H&#39;, 60], [&#39;%M&#39;, 60]]</code>
1338
+ <code class="ruby"> FORMAT_SPECIFIER = [[&#39;%Y&#39;, 365], [&#39;%m&#39;, 30], [&#39;%d&#39;, 24], [&#39;%H&#39;, 60], [&#39;%M&#39;, 60]]</code>
1297
1339
  </li>
1298
1340
 
1299
1341
  <li class="never" data-hits="" data-linenumber="5">
@@ -1305,7 +1347,7 @@
1305
1347
  <li class="covered" data-hits="1" data-linenumber="6">
1306
1348
  <span class="hits">1</span>
1307
1349
 
1308
- <code class="ruby"> GRANULARITY = [&#39;yearly&#39;, &#39;monthly&#39;, &#39;dayly&#39;, &#39;hourly&#39;, &#39;minutely&#39;]</code>
1350
+ <code class="ruby"> GRANULARITY = [&#39;yearly&#39;, &#39;monthly&#39;, &#39;dayly&#39;, &#39;hourly&#39;, &#39;minutely&#39;]</code>
1309
1351
  </li>
1310
1352
 
1311
1353
  <li class="never" data-hits="" data-linenumber="7">
@@ -1317,61 +1359,61 @@
1317
1359
  <li class="covered" data-hits="1" data-linenumber="8">
1318
1360
  <span class="hits">1</span>
1319
1361
 
1320
- <code class="ruby"> private</code>
1362
+ <code class="ruby"> private</code>
1321
1363
  </li>
1322
1364
 
1323
1365
  <li class="covered" data-hits="1" data-linenumber="9">
1324
1366
  <span class="hits">1</span>
1325
1367
 
1326
- <code class="ruby"> def method_missing(meth, *args, &amp;block)</code>
1368
+ <code class="ruby"> def method_missing(meth, *args, &amp;block)</code>
1327
1369
  </li>
1328
1370
 
1329
1371
  <li class="missed" data-hits="0" data-linenumber="10">
1330
1372
 
1331
1373
 
1332
- <code class="ruby"> if meth.to_s =~ /^(minute|hour|dai|day|month|year)ly_([a-z_0-9]+)$/</code>
1374
+ <code class="ruby"> if meth.to_s =~ /^(minute|hour|dai|day|month|year)ly_([a-z_0-9]+)$/</code>
1333
1375
  </li>
1334
1376
 
1335
1377
  <li class="missed" data-hits="0" data-linenumber="11">
1336
1378
 
1337
1379
 
1338
- <code class="ruby"> granularity = ($1 == &#39;dai&#39; ? &#39;day&#39; : $1) + &#39;ly&#39;</code>
1380
+ <code class="ruby"> granularity = ($1 == &#39;dai&#39; ? &#39;day&#39; : $1) + &#39;ly&#39;</code>
1339
1381
  </li>
1340
1382
 
1341
1383
  <li class="missed" data-hits="0" data-linenumber="12">
1342
1384
 
1343
1385
 
1344
- <code class="ruby"> metric_name = $2</code>
1386
+ <code class="ruby"> metric_name = $2</code>
1345
1387
  </li>
1346
1388
 
1347
1389
  <li class="missed" data-hits="0" data-linenumber="13">
1348
1390
 
1349
1391
 
1350
- <code class="ruby"> data(granularity, metric_name, *args)</code>
1392
+ <code class="ruby"> data(granularity, metric_name, *args)</code>
1351
1393
  </li>
1352
1394
 
1353
1395
  <li class="never" data-hits="" data-linenumber="14">
1354
1396
 
1355
1397
 
1356
- <code class="ruby"> else</code>
1398
+ <code class="ruby"> else</code>
1357
1399
  </li>
1358
1400
 
1359
1401
  <li class="missed" data-hits="0" data-linenumber="15">
1360
1402
 
1361
1403
 
1362
- <code class="ruby"> super</code>
1404
+ <code class="ruby"> super</code>
1363
1405
  </li>
1364
1406
 
1365
1407
  <li class="never" data-hits="" data-linenumber="16">
1366
1408
 
1367
1409
 
1368
- <code class="ruby"> end</code>
1410
+ <code class="ruby"> end</code>
1369
1411
  </li>
1370
1412
 
1371
1413
  <li class="never" data-hits="" data-linenumber="17">
1372
1414
 
1373
1415
 
1374
- <code class="ruby"> end</code>
1416
+ <code class="ruby"> end</code>
1375
1417
  </li>
1376
1418
 
1377
1419
  <li class="never" data-hits="" data-linenumber="18">
@@ -1383,19 +1425,19 @@
1383
1425
  <li class="covered" data-hits="1" data-linenumber="19">
1384
1426
  <span class="hits">1</span>
1385
1427
 
1386
- <code class="ruby"> def metric_type(metric_name)</code>
1428
+ <code class="ruby"> def metric_type(metric_name)</code>
1387
1429
  </li>
1388
1430
 
1389
1431
  <li class="missed" data-hits="0" data-linenumber="20">
1390
1432
 
1391
1433
 
1392
- <code class="ruby"> RedisAnalytics.redis_connection.hget(&quot;#{RedisAnalytics.redis_namespace}:#METRICS&quot;, metric_name)</code>
1434
+ <code class="ruby"> RedisAnalytics.redis_connection.hget(&quot;#{RedisAnalytics.redis_namespace}:#METRICS&quot;, metric_name)</code>
1393
1435
  </li>
1394
1436
 
1395
1437
  <li class="never" data-hits="" data-linenumber="21">
1396
1438
 
1397
1439
 
1398
- <code class="ruby"> end</code>
1440
+ <code class="ruby"> end</code>
1399
1441
  </li>
1400
1442
 
1401
1443
  <li class="never" data-hits="" data-linenumber="22">
@@ -1407,19 +1449,19 @@
1407
1449
  <li class="covered" data-hits="1" data-linenumber="23">
1408
1450
  <span class="hits">1</span>
1409
1451
 
1410
- <code class="ruby"> def data(granularity, metric_name, from_date, options = {})</code>
1452
+ <code class="ruby"> def data(granularity, metric_name, from_date, options = {})</code>
1411
1453
  </li>
1412
1454
 
1413
1455
  <li class="missed" data-hits="0" data-linenumber="24">
1414
1456
 
1415
1457
 
1416
- <code class="ruby"> aggregate = options[:aggregate] || false</code>
1458
+ <code class="ruby"> aggregate = options[:aggregate] || false</code>
1417
1459
  </li>
1418
1460
 
1419
1461
  <li class="missed" data-hits="0" data-linenumber="25">
1420
1462
 
1421
1463
 
1422
- <code class="ruby"> x = granularity[0..-3]</code>
1464
+ <code class="ruby"> x = granularity[0..-3]</code>
1423
1465
  </li>
1424
1466
 
1425
1467
  <li class="never" data-hits="" data-linenumber="26">
@@ -1431,13 +1473,13 @@
1431
1473
  <li class="missed" data-hits="0" data-linenumber="27">
1432
1474
 
1433
1475
 
1434
- <code class="ruby"> to_date = (options[:to_date] || Time.now).send(&quot;end_of_#{x}&quot;)</code>
1476
+ <code class="ruby"> to_date = (options[:to_date] || Time.now).send(&quot;end_of_#{x}&quot;)</code>
1435
1477
  </li>
1436
1478
 
1437
1479
  <li class="missed" data-hits="0" data-linenumber="28">
1438
1480
 
1439
1481
 
1440
- <code class="ruby"> i = from_date.send(&quot;beginning_of_#{x}&quot;)</code>
1482
+ <code class="ruby"> i = from_date.send(&quot;beginning_of_#{x}&quot;)</code>
1441
1483
  </li>
1442
1484
 
1443
1485
  <li class="never" data-hits="" data-linenumber="29">
@@ -1449,205 +1491,205 @@
1449
1491
  <li class="missed" data-hits="0" data-linenumber="30">
1450
1492
 
1451
1493
 
1452
- <code class="ruby"> union = []</code>
1494
+ <code class="ruby"> union = []</code>
1453
1495
  </li>
1454
1496
 
1455
1497
  <li class="missed" data-hits="0" data-linenumber="31">
1456
1498
 
1457
1499
 
1458
- <code class="ruby"> time = []</code>
1500
+ <code class="ruby"> time = []</code>
1459
1501
  </li>
1460
1502
 
1461
1503
  <li class="never" data-hits="" data-linenumber="32">
1462
1504
 
1463
1505
 
1464
- <code class="ruby"> begin</code>
1506
+ <code class="ruby"> begin</code>
1465
1507
  </li>
1466
1508
 
1467
1509
  <li class="missed" data-hits="0" data-linenumber="33">
1468
1510
 
1469
1511
 
1470
- <code class="ruby"> slice_key = i.strftime(FORMAT_SPECIFIER[0..GRANULARITY.index(granularity)].map{|x| x[0]}.join(&#39;_&#39;))</code>
1512
+ <code class="ruby"> slice_key = i.strftime(FORMAT_SPECIFIER[0..GRANULARITY.index(granularity)].map{|x| x[0]}.join(&#39;_&#39;))</code>
1471
1513
  </li>
1472
1514
 
1473
1515
  <li class="missed" data-hits="0" data-linenumber="34">
1474
1516
 
1475
1517
 
1476
- <code class="ruby"> union &lt;&lt; &quot;#{RedisAnalytics.redis_namespace}:#{metric_name}:#{slice_key}&quot;</code>
1518
+ <code class="ruby"> union &lt;&lt; &quot;#{RedisAnalytics.redis_namespace}:#{metric_name}:#{slice_key}&quot;</code>
1477
1519
  </li>
1478
1520
 
1479
1521
  <li class="missed" data-hits="0" data-linenumber="35">
1480
1522
 
1481
1523
 
1482
- <code class="ruby"> time &lt;&lt; slice_key.split(&#39;_&#39;)</code>
1524
+ <code class="ruby"> time &lt;&lt; slice_key.split(&#39;_&#39;)</code>
1483
1525
  </li>
1484
1526
 
1485
1527
  <li class="missed" data-hits="0" data-linenumber="36">
1486
1528
 
1487
1529
 
1488
- <code class="ruby"> i += 1.send(x)</code>
1530
+ <code class="ruby"> i += 1.send(x)</code>
1489
1531
  </li>
1490
1532
 
1491
1533
  <li class="missed" data-hits="0" data-linenumber="37">
1492
1534
 
1493
1535
 
1494
- <code class="ruby"> end while i &lt;= to_date</code>
1536
+ <code class="ruby"> end while i &lt;= to_date</code>
1495
1537
  </li>
1496
1538
 
1497
1539
  <li class="missed" data-hits="0" data-linenumber="38">
1498
1540
 
1499
1541
 
1500
- <code class="ruby"> seq = get_next_seq</code>
1542
+ <code class="ruby"> seq = get_next_seq</code>
1501
1543
  </li>
1502
1544
 
1503
1545
  <li class="missed" data-hits="0" data-linenumber="39">
1504
1546
 
1505
1547
 
1506
- <code class="ruby"> if metric_type(metric_name) == &#39;String&#39;</code>
1548
+ <code class="ruby"> if metric_type(metric_name) == &#39;String&#39;</code>
1507
1549
  </li>
1508
1550
 
1509
1551
  <li class="missed" data-hits="0" data-linenumber="40">
1510
1552
 
1511
1553
 
1512
- <code class="ruby"> if aggregate</code>
1554
+ <code class="ruby"> if aggregate</code>
1513
1555
  </li>
1514
1556
 
1515
1557
  <li class="missed" data-hits="0" data-linenumber="41">
1516
1558
 
1517
1559
 
1518
- <code class="ruby"> union_key = &quot;#{RedisAnalytics.redis_namespace}:#{seq}&quot;</code>
1560
+ <code class="ruby"> union_key = &quot;#{RedisAnalytics.redis_namespace}:#{seq}&quot;</code>
1519
1561
  </li>
1520
1562
 
1521
1563
  <li class="missed" data-hits="0" data-linenumber="42">
1522
1564
 
1523
1565
 
1524
- <code class="ruby"> RedisAnalytics.redis_connection.zunionstore(union_key, union)</code>
1566
+ <code class="ruby"> RedisAnalytics.redis_connection.zunionstore(union_key, union)</code>
1525
1567
  </li>
1526
1568
 
1527
1569
  <li class="missed" data-hits="0" data-linenumber="43">
1528
1570
 
1529
1571
 
1530
- <code class="ruby"> RedisAnalytics.redis_connection.expire(union_key, 100)</code>
1572
+ <code class="ruby"> RedisAnalytics.redis_connection.expire(union_key, 100)</code>
1531
1573
  </li>
1532
1574
 
1533
1575
  <li class="missed" data-hits="0" data-linenumber="44">
1534
1576
 
1535
1577
 
1536
- <code class="ruby"> return Hash[RedisAnalytics.redis_connection.zrange(union_key, 0, -1, :with_scores =&gt; true)]</code>
1578
+ <code class="ruby"> return Hash[RedisAnalytics.redis_connection.zrange(union_key, 0, -1, :with_scores =&gt; true)]</code>
1537
1579
  </li>
1538
1580
 
1539
1581
  <li class="never" data-hits="" data-linenumber="45">
1540
1582
 
1541
1583
 
1542
- <code class="ruby"> else</code>
1584
+ <code class="ruby"> else</code>
1543
1585
  </li>
1544
1586
 
1545
1587
  <li class="missed" data-hits="0" data-linenumber="46">
1546
1588
 
1547
1589
 
1548
- <code class="ruby"> return time.zip(union.map{|x| Hash[RedisAnalytics.redis_connection.zrange(x, 0, -1, :with_scores =&gt; true)]})</code>
1590
+ <code class="ruby"> return time.zip(union.map{|x| Hash[RedisAnalytics.redis_connection.zrange(x, 0, -1, :with_scores =&gt; true)]})</code>
1549
1591
  </li>
1550
1592
 
1551
1593
  <li class="never" data-hits="" data-linenumber="47">
1552
1594
 
1553
1595
 
1554
- <code class="ruby"> end</code>
1596
+ <code class="ruby"> end</code>
1555
1597
  </li>
1556
1598
 
1557
1599
  <li class="missed" data-hits="0" data-linenumber="48">
1558
1600
 
1559
1601
 
1560
- <code class="ruby"> elsif metric_type(metric_name) == &#39;Fixnum&#39;</code>
1602
+ <code class="ruby"> elsif metric_type(metric_name) == &#39;Fixnum&#39;</code>
1561
1603
  </li>
1562
1604
 
1563
1605
  <li class="missed" data-hits="0" data-linenumber="49">
1564
1606
 
1565
1607
 
1566
- <code class="ruby"> if aggregate</code>
1608
+ <code class="ruby"> if aggregate</code>
1567
1609
  </li>
1568
1610
 
1569
1611
  <li class="missed" data-hits="0" data-linenumber="50">
1570
1612
 
1571
1613
 
1572
- <code class="ruby"> return RedisAnalytics.redis_connection.mget(*union).map(&amp;:to_i).inject(:+)</code>
1614
+ <code class="ruby"> return RedisAnalytics.redis_connection.mget(*union).map(&amp;:to_i).inject(:+)</code>
1573
1615
  </li>
1574
1616
 
1575
1617
  <li class="never" data-hits="" data-linenumber="51">
1576
1618
 
1577
1619
 
1578
- <code class="ruby"> else</code>
1620
+ <code class="ruby"> else</code>
1579
1621
  </li>
1580
1622
 
1581
1623
  <li class="missed" data-hits="0" data-linenumber="52">
1582
1624
 
1583
1625
 
1584
- <code class="ruby"> return time.zip(RedisAnalytics.redis_connection.mget(*union).map(&amp;:to_i))</code>
1626
+ <code class="ruby"> return time.zip(RedisAnalytics.redis_connection.mget(*union).map(&amp;:to_i))</code>
1585
1627
  </li>
1586
1628
 
1587
1629
  <li class="never" data-hits="" data-linenumber="53">
1588
1630
 
1589
1631
 
1590
- <code class="ruby"> end</code>
1632
+ <code class="ruby"> end</code>
1591
1633
  </li>
1592
1634
 
1593
1635
  <li class="never" data-hits="" data-linenumber="54">
1594
1636
 
1595
1637
 
1596
- <code class="ruby"> else</code>
1638
+ <code class="ruby"> else</code>
1597
1639
  </li>
1598
1640
 
1599
1641
  <li class="missed" data-hits="0" data-linenumber="55">
1600
1642
 
1601
1643
 
1602
- <code class="ruby"> if Metrics.public_instance_methods.any?{|m| m.to_s =~ /^#{metric_name}_ratio_per_(hit|visit)$/}</code>
1644
+ <code class="ruby"> if Metrics.public_instance_methods.any?{|m| m.to_s =~ /^#{metric_name}_ratio_per_(hit|visit)$/}</code>
1603
1645
  </li>
1604
1646
 
1605
1647
  <li class="missed" data-hits="0" data-linenumber="56">
1606
1648
 
1607
1649
 
1608
- <code class="ruby"> aggregate ? {} : time.zip([{}] * time.length)</code>
1650
+ <code class="ruby"> aggregate ? {} : time.zip([{}] * time.length)</code>
1609
1651
  </li>
1610
1652
 
1611
1653
  <li class="missed" data-hits="0" data-linenumber="57">
1612
1654
 
1613
1655
 
1614
- <code class="ruby"> elsif Metrics.public_instance_methods.any?{|m| m.to_s =~ /^#{metric_name}_count_per_(hit|visit)$/}</code>
1656
+ <code class="ruby"> elsif Metrics.public_instance_methods.any?{|m| m.to_s =~ /^#{metric_name}_count_per_(hit|visit)$/}</code>
1615
1657
  </li>
1616
1658
 
1617
1659
  <li class="missed" data-hits="0" data-linenumber="58">
1618
1660
 
1619
1661
 
1620
- <code class="ruby"> aggregate ? 0 : time.zip([0] * time.length)</code>
1662
+ <code class="ruby"> aggregate ? 0 : time.zip([0] * time.length)</code>
1621
1663
  </li>
1622
1664
 
1623
1665
  <li class="never" data-hits="" data-linenumber="59">
1624
1666
 
1625
1667
 
1626
- <code class="ruby"> else</code>
1668
+ <code class="ruby"> else</code>
1627
1669
  </li>
1628
1670
 
1629
1671
  <li class="missed" data-hits="0" data-linenumber="60">
1630
1672
 
1631
1673
 
1632
- <code class="ruby"> aggregate ? 0 : time.zip([0] * time.length)</code>
1674
+ <code class="ruby"> aggregate ? 0 : time.zip([0] * time.length)</code>
1633
1675
  </li>
1634
1676
 
1635
1677
  <li class="never" data-hits="" data-linenumber="61">
1636
1678
 
1637
1679
 
1638
- <code class="ruby"> end</code>
1680
+ <code class="ruby"> end</code>
1639
1681
  </li>
1640
1682
 
1641
1683
  <li class="never" data-hits="" data-linenumber="62">
1642
1684
 
1643
1685
 
1644
- <code class="ruby"> end</code>
1686
+ <code class="ruby"> end</code>
1645
1687
  </li>
1646
1688
 
1647
1689
  <li class="never" data-hits="" data-linenumber="63">
1648
1690
 
1649
1691
 
1650
- <code class="ruby"> end</code>
1692
+ <code class="ruby"> end</code>
1651
1693
  </li>
1652
1694
 
1653
1695
  <li class="never" data-hits="" data-linenumber="64">
@@ -1659,19 +1701,19 @@
1659
1701
  <li class="covered" data-hits="1" data-linenumber="65">
1660
1702
  <span class="hits">1</span>
1661
1703
 
1662
- <code class="ruby"> def get_next_seq</code>
1704
+ <code class="ruby"> def get_next_seq</code>
1663
1705
  </li>
1664
1706
 
1665
1707
  <li class="missed" data-hits="0" data-linenumber="66">
1666
1708
 
1667
1709
 
1668
- <code class="ruby"> seq = RedisAnalytics.redis_connection.incr(&quot;#{RedisAnalytics.redis_namespace}:#SEQUENCER&quot;)</code>
1710
+ <code class="ruby"> seq = RedisAnalytics.redis_connection.incr(&quot;#{RedisAnalytics.redis_namespace}:#SEQUENCER&quot;)</code>
1669
1711
  </li>
1670
1712
 
1671
1713
  <li class="never" data-hits="" data-linenumber="67">
1672
1714
 
1673
1715
 
1674
- <code class="ruby"> end</code>
1716
+ <code class="ruby"> end</code>
1675
1717
  </li>
1676
1718
 
1677
1719
  <li class="never" data-hits="" data-linenumber="68">
@@ -1683,31 +1725,31 @@
1683
1725
  <li class="covered" data-hits="1" data-linenumber="69">
1684
1726
  <span class="hits">1</span>
1685
1727
 
1686
- <code class="ruby"> def time_range</code>
1728
+ <code class="ruby"> def time_range</code>
1687
1729
  </li>
1688
1730
 
1689
1731
  <li class="missed" data-hits="0" data-linenumber="70">
1690
1732
 
1691
1733
 
1692
- <code class="ruby"> (request.cookies[&quot;_rarng&quot;] || RedisAnalytics.default_range).to_sym</code>
1734
+ <code class="ruby"> (request.cookies[&quot;_rarng&quot;] || RedisAnalytics.default_range).to_sym</code>
1693
1735
  </li>
1694
1736
 
1695
1737
  <li class="never" data-hits="" data-linenumber="71">
1696
1738
 
1697
1739
 
1698
- <code class="ruby"> end</code>
1740
+ <code class="ruby"> end</code>
1699
1741
  </li>
1700
1742
 
1701
1743
  <li class="never" data-hits="" data-linenumber="72">
1702
1744
 
1703
1745
 
1704
- <code class="ruby"> end</code>
1746
+ <code class="ruby"> end</code>
1705
1747
  </li>
1706
1748
 
1707
1749
  <li class="never" data-hits="" data-linenumber="73">
1708
1750
 
1709
1751
 
1710
- <code class="ruby"> end</code>
1752
+ <code class="ruby">end</code>
1711
1753
  </li>
1712
1754
 
1713
1755
  <li class="never" data-hits="" data-linenumber="74">
@@ -1737,13 +1779,13 @@
1737
1779
  <li class="covered" data-hits="1" data-linenumber="1">
1738
1780
  <span class="hits">1</span>
1739
1781
 
1740
- <code class="ruby"> module RedisAnalytics</code>
1782
+ <code class="ruby">module RedisAnalytics</code>
1741
1783
  </li>
1742
1784
 
1743
1785
  <li class="covered" data-hits="1" data-linenumber="2">
1744
1786
  <span class="hits">1</span>
1745
1787
 
1746
- <code class="ruby"> module Metrics</code>
1788
+ <code class="ruby"> module Metrics</code>
1747
1789
  </li>
1748
1790
 
1749
1791
  <li class="never" data-hits="" data-linenumber="3">
@@ -1755,25 +1797,25 @@
1755
1797
  <li class="covered" data-hits="1" data-linenumber="4">
1756
1798
  <span class="hits">1</span>
1757
1799
 
1758
- <code class="ruby"> attr_reader :visit_time_count_per_visit</code>
1800
+ <code class="ruby"> attr_reader :visit_time_count_per_visit</code>
1759
1801
  </li>
1760
1802
 
1761
1803
  <li class="covered" data-hits="1" data-linenumber="5">
1762
1804
  <span class="hits">1</span>
1763
1805
 
1764
- <code class="ruby"> attr_reader :visits_count_per_visit, :first_visits_count_per_visit, :repeat_visits_count_per_visit</code>
1806
+ <code class="ruby"> attr_reader :visits_count_per_visit, :first_visits_count_per_visit, :repeat_visits_count_per_visit</code>
1765
1807
  </li>
1766
1808
 
1767
1809
  <li class="covered" data-hits="1" data-linenumber="6">
1768
1810
  <span class="hits">1</span>
1769
1811
 
1770
- <code class="ruby"> attr_reader :unique_visits_ratio_per_visit</code>
1812
+ <code class="ruby"> attr_reader :unique_visits_ratio_per_visit</code>
1771
1813
  </li>
1772
1814
 
1773
1815
  <li class="covered" data-hits="1" data-linenumber="7">
1774
1816
  <span class="hits">1</span>
1775
1817
 
1776
- <code class="ruby"> attr_reader :page_views_count_per_hit, :second_page_views_count_per_hit</code>
1818
+ <code class="ruby"> attr_reader :page_views_count_per_hit, :second_page_views_count_per_hit</code>
1777
1819
  </li>
1778
1820
 
1779
1821
  <li class="never" data-hits="" data-linenumber="8">
@@ -1785,25 +1827,25 @@
1785
1827
  <li class="never" data-hits="" data-linenumber="9">
1786
1828
 
1787
1829
 
1788
- <code class="ruby"> # Developers can override or define new public methods here</code>
1830
+ <code class="ruby"> # Developers can override or define new public methods here</code>
1789
1831
  </li>
1790
1832
 
1791
1833
  <li class="never" data-hits="" data-linenumber="10">
1792
1834
 
1793
1835
 
1794
- <code class="ruby"> # Methods should start with track and end with count or types</code>
1836
+ <code class="ruby"> # Methods should start with track and end with count or types</code>
1795
1837
  </li>
1796
1838
 
1797
1839
  <li class="never" data-hits="" data-linenumber="11">
1798
1840
 
1799
1841
 
1800
- <code class="ruby"> # Return types should be Fixnum or String resp.</code>
1842
+ <code class="ruby"> # Return types should be Fixnum or String resp.</code>
1801
1843
  </li>
1802
1844
 
1803
1845
  <li class="never" data-hits="" data-linenumber="12">
1804
1846
 
1805
1847
 
1806
- <code class="ruby"> # If you return nil or an error nothing will be tracked</code>
1848
+ <code class="ruby"> # If you return nil or an error nothing will be tracked</code>
1807
1849
  </li>
1808
1850
 
1809
1851
  <li class="never" data-hits="" data-linenumber="13">
@@ -1815,19 +1857,19 @@
1815
1857
  <li class="covered" data-hits="1" data-linenumber="14">
1816
1858
  <span class="hits">1</span>
1817
1859
 
1818
- <code class="ruby"> def browser_ratio_per_visit</code>
1860
+ <code class="ruby"> def browser_ratio_per_visit</code>
1819
1861
  </li>
1820
1862
 
1821
1863
  <li class="covered" data-hits="3" data-linenumber="15">
1822
1864
  <span class="hits">3</span>
1823
1865
 
1824
- <code class="ruby"> user_agent.name.to_s</code>
1866
+ <code class="ruby"> user_agent.name.to_s</code>
1825
1867
  </li>
1826
1868
 
1827
1869
  <li class="never" data-hits="" data-linenumber="16">
1828
1870
 
1829
1871
 
1830
- <code class="ruby"> end</code>
1872
+ <code class="ruby"> end</code>
1831
1873
  </li>
1832
1874
 
1833
1875
  <li class="never" data-hits="" data-linenumber="17">
@@ -1839,19 +1881,19 @@
1839
1881
  <li class="covered" data-hits="1" data-linenumber="18">
1840
1882
  <span class="hits">1</span>
1841
1883
 
1842
- <code class="ruby"> def platform_ratio_per_visit</code>
1884
+ <code class="ruby"> def platform_ratio_per_visit</code>
1843
1885
  </li>
1844
1886
 
1845
1887
  <li class="covered" data-hits="3" data-linenumber="19">
1846
1888
  <span class="hits">3</span>
1847
1889
 
1848
- <code class="ruby"> user_agent.platform.to_s</code>
1890
+ <code class="ruby"> user_agent.platform.to_s</code>
1849
1891
  </li>
1850
1892
 
1851
1893
  <li class="never" data-hits="" data-linenumber="20">
1852
1894
 
1853
1895
 
1854
- <code class="ruby"> end</code>
1896
+ <code class="ruby"> end</code>
1855
1897
  </li>
1856
1898
 
1857
1899
  <li class="never" data-hits="" data-linenumber="21">
@@ -1863,79 +1905,79 @@
1863
1905
  <li class="covered" data-hits="1" data-linenumber="22">
1864
1906
  <span class="hits">1</span>
1865
1907
 
1866
- <code class="ruby"> def country_ratio_per_visit</code>
1908
+ <code class="ruby"> def country_ratio_per_visit</code>
1867
1909
  </li>
1868
1910
 
1869
1911
  <li class="covered" data-hits="3" data-linenumber="23">
1870
1912
  <span class="hits">3</span>
1871
1913
 
1872
- <code class="ruby"> if defined?(GeoIP)</code>
1914
+ <code class="ruby"> if defined?(GeoIP)</code>
1873
1915
  </li>
1874
1916
 
1875
1917
  <li class="covered" data-hits="3" data-linenumber="24">
1876
1918
  <span class="hits">3</span>
1877
1919
 
1878
- <code class="ruby"> begin</code>
1920
+ <code class="ruby"> begin</code>
1879
1921
  </li>
1880
1922
 
1881
1923
  <li class="covered" data-hits="3" data-linenumber="25">
1882
1924
  <span class="hits">3</span>
1883
1925
 
1884
- <code class="ruby"> g = GeoIP.new(RedisAnalytics.geo_ip_data_path)</code>
1926
+ <code class="ruby"> g = GeoIP.new(RedisAnalytics.geo_ip_data_path)</code>
1885
1927
  </li>
1886
1928
 
1887
1929
  <li class="covered" data-hits="3" data-linenumber="26">
1888
1930
  <span class="hits">3</span>
1889
1931
 
1890
- <code class="ruby"> geo_country_code = g.country(@rack_request.ip).to_hash[:country_code2]</code>
1932
+ <code class="ruby"> geo_country_code = g.country(@rack_request.ip).to_hash[:country_code2]</code>
1891
1933
  </li>
1892
1934
 
1893
1935
  <li class="covered" data-hits="3" data-linenumber="27">
1894
1936
  <span class="hits">3</span>
1895
1937
 
1896
- <code class="ruby"> if geo_country_code and geo_country_code =~ /^[A-Z]{2}$/</code>
1938
+ <code class="ruby"> if geo_country_code and geo_country_code =~ /^[A-Z]{2}$/</code>
1897
1939
  </li>
1898
1940
 
1899
1941
  <li class="missed" data-hits="0" data-linenumber="28">
1900
1942
 
1901
1943
 
1902
- <code class="ruby"> return geo_country_code</code>
1944
+ <code class="ruby"> return geo_country_code</code>
1903
1945
  </li>
1904
1946
 
1905
1947
  <li class="never" data-hits="" data-linenumber="29">
1906
1948
 
1907
1949
 
1908
- <code class="ruby"> end</code>
1950
+ <code class="ruby"> end</code>
1909
1951
  </li>
1910
1952
 
1911
1953
  <li class="missed" data-hits="0" data-linenumber="30">
1912
1954
 
1913
1955
 
1914
- <code class="ruby"> rescue Exception =&gt; e</code>
1956
+ <code class="ruby"> rescue Exception =&gt; e</code>
1915
1957
  </li>
1916
1958
 
1917
1959
  <li class="missed" data-hits="0" data-linenumber="31">
1918
1960
 
1919
1961
 
1920
- <code class="ruby"> warn &quot;Unable to fetch country info #{e}&quot;</code>
1962
+ <code class="ruby"> warn &quot;Unable to fetch country info #{e}&quot;</code>
1921
1963
  </li>
1922
1964
 
1923
1965
  <li class="never" data-hits="" data-linenumber="32">
1924
1966
 
1925
1967
 
1926
- <code class="ruby"> end</code>
1968
+ <code class="ruby"> end</code>
1927
1969
  </li>
1928
1970
 
1929
1971
  <li class="never" data-hits="" data-linenumber="33">
1930
1972
 
1931
1973
 
1932
- <code class="ruby"> end</code>
1974
+ <code class="ruby"> end</code>
1933
1975
  </li>
1934
1976
 
1935
1977
  <li class="never" data-hits="" data-linenumber="34">
1936
1978
 
1937
1979
 
1938
- <code class="ruby"> end</code>
1980
+ <code class="ruby"> end</code>
1939
1981
  </li>
1940
1982
 
1941
1983
  <li class="never" data-hits="" data-linenumber="35">
@@ -1947,91 +1989,91 @@
1947
1989
  <li class="covered" data-hits="1" data-linenumber="36">
1948
1990
  <span class="hits">1</span>
1949
1991
 
1950
- <code class="ruby"> def recency_ratio_per_visit</code>
1992
+ <code class="ruby"> def recency_ratio_per_visit</code>
1951
1993
  </li>
1952
1994
 
1953
1995
  <li class="never" data-hits="" data-linenumber="37">
1954
1996
 
1955
1997
 
1956
- <code class="ruby"> # tracking for visitor recency</code>
1998
+ <code class="ruby"> # tracking for visitor recency</code>
1957
1999
  </li>
1958
2000
 
1959
2001
  <li class="covered" data-hits="3" data-linenumber="38">
1960
2002
  <span class="hits">3</span>
1961
2003
 
1962
- <code class="ruby"> if @last_visit_time # from first_visit_cookie</code>
2004
+ <code class="ruby"> if @last_visit_time # from first_visit_cookie</code>
1963
2005
  </li>
1964
2006
 
1965
2007
  <li class="missed" data-hits="0" data-linenumber="39">
1966
2008
 
1967
2009
 
1968
- <code class="ruby"> days_since_last_visit = ((@t.to_i - @last_visit_time.to_i)/(24*3600)).round</code>
2010
+ <code class="ruby"> days_since_last_visit = ((@t.to_i - @last_visit_time.to_i)/(24*3600)).round</code>
1969
2011
  </li>
1970
2012
 
1971
2013
  <li class="missed" data-hits="0" data-linenumber="40">
1972
2014
 
1973
2015
 
1974
- <code class="ruby"> if days_since_last_visit &lt;= 1</code>
2016
+ <code class="ruby"> if days_since_last_visit &lt;= 1</code>
1975
2017
  </li>
1976
2018
 
1977
2019
  <li class="missed" data-hits="0" data-linenumber="41">
1978
2020
 
1979
2021
 
1980
- <code class="ruby"> return &#39;d&#39;</code>
2022
+ <code class="ruby"> return &#39;d&#39;</code>
1981
2023
  </li>
1982
2024
 
1983
2025
  <li class="missed" data-hits="0" data-linenumber="42">
1984
2026
 
1985
2027
 
1986
- <code class="ruby"> elsif days_since_last_visit &lt;= 7</code>
2028
+ <code class="ruby"> elsif days_since_last_visit &lt;= 7</code>
1987
2029
  </li>
1988
2030
 
1989
2031
  <li class="missed" data-hits="0" data-linenumber="43">
1990
2032
 
1991
2033
 
1992
- <code class="ruby"> return &#39;w&#39;</code>
2034
+ <code class="ruby"> return &#39;w&#39;</code>
1993
2035
  </li>
1994
2036
 
1995
2037
  <li class="missed" data-hits="0" data-linenumber="44">
1996
2038
 
1997
2039
 
1998
- <code class="ruby"> elsif days_since_last_visit &lt;= 30</code>
2040
+ <code class="ruby"> elsif days_since_last_visit &lt;= 30</code>
1999
2041
  </li>
2000
2042
 
2001
2043
  <li class="missed" data-hits="0" data-linenumber="45">
2002
2044
 
2003
2045
 
2004
- <code class="ruby"> return &#39;m&#39;</code>
2046
+ <code class="ruby"> return &#39;m&#39;</code>
2005
2047
  </li>
2006
2048
 
2007
2049
  <li class="never" data-hits="" data-linenumber="46">
2008
2050
 
2009
2051
 
2010
- <code class="ruby"> else</code>
2052
+ <code class="ruby"> else</code>
2011
2053
  </li>
2012
2054
 
2013
2055
  <li class="missed" data-hits="0" data-linenumber="47">
2014
2056
 
2015
2057
 
2016
- <code class="ruby"> return &#39;o&#39;</code>
2058
+ <code class="ruby"> return &#39;o&#39;</code>
2017
2059
  </li>
2018
2060
 
2019
2061
  <li class="never" data-hits="" data-linenumber="48">
2020
2062
 
2021
2063
 
2022
- <code class="ruby"> end</code>
2064
+ <code class="ruby"> end</code>
2023
2065
  </li>
2024
2066
 
2025
2067
  <li class="never" data-hits="" data-linenumber="49">
2026
2068
 
2027
2069
 
2028
- <code class="ruby"> end</code>
2070
+ <code class="ruby"> end</code>
2029
2071
  </li>
2030
2072
 
2031
2073
  <li class="never" data-hits="" data-linenumber="50">
2032
2074
 
2033
2075
 
2034
- <code class="ruby"> end</code>
2076
+ <code class="ruby"> end</code>
2035
2077
  </li>
2036
2078
 
2037
2079
  <li class="never" data-hits="" data-linenumber="51">
@@ -2043,19 +2085,19 @@
2043
2085
  <li class="covered" data-hits="1" data-linenumber="52">
2044
2086
  <span class="hits">1</span>
2045
2087
 
2046
- <code class="ruby"> def device_ratio_per_visit</code>
2088
+ <code class="ruby"> def device_ratio_per_visit</code>
2047
2089
  </li>
2048
2090
 
2049
2091
  <li class="covered" data-hits="3" data-linenumber="53">
2050
2092
  <span class="hits">3</span>
2051
2093
 
2052
- <code class="ruby"> return ((user_agent.mobile? or user_agent.tablet?) ? &#39;mobile&#39; : &#39;desktop&#39;)</code>
2094
+ <code class="ruby"> return ((user_agent.mobile? or user_agent.tablet?) ? &#39;mobile&#39; : &#39;desktop&#39;)</code>
2053
2095
  </li>
2054
2096
 
2055
2097
  <li class="never" data-hits="" data-linenumber="54">
2056
2098
 
2057
2099
 
2058
- <code class="ruby"> end</code>
2100
+ <code class="ruby"> end</code>
2059
2101
  </li>
2060
2102
 
2061
2103
  <li class="never" data-hits="" data-linenumber="55">
@@ -2067,97 +2109,97 @@
2067
2109
  <li class="covered" data-hits="1" data-linenumber="56">
2068
2110
  <span class="hits">1</span>
2069
2111
 
2070
- <code class="ruby"> def referrer_ratio_per_visit</code>
2112
+ <code class="ruby"> def referrer_ratio_per_visit</code>
2071
2113
  </li>
2072
2114
 
2073
2115
  <li class="covered" data-hits="3" data-linenumber="57">
2074
2116
  <span class="hits">3</span>
2075
2117
 
2076
- <code class="ruby"> if @rack_request.referrer</code>
2118
+ <code class="ruby"> if @rack_request.referrer</code>
2077
2119
  </li>
2078
2120
 
2079
2121
  <li class="missed" data-hits="0" data-linenumber="58">
2080
2122
 
2081
2123
 
2082
- <code class="ruby"> [&#39;google&#39;, &#39;bing&#39;, &#39;yahoo&#39;, &#39;cleartrip&#39;, &#39;github&#39;].each do |referrer|</code>
2124
+ <code class="ruby"> [&#39;google&#39;, &#39;bing&#39;, &#39;yahoo&#39;, &#39;cleartrip&#39;, &#39;github&#39;].each do |referrer|</code>
2083
2125
  </li>
2084
2126
 
2085
2127
  <li class="never" data-hits="" data-linenumber="59">
2086
2128
 
2087
2129
 
2088
- <code class="ruby"> # this will track x.google.mysite.com as google so its buggy, fix the regex</code>
2130
+ <code class="ruby"> # this will track x.google.mysite.com as google so its buggy, fix the regex</code>
2089
2131
  </li>
2090
2132
 
2091
2133
  <li class="missed" data-hits="0" data-linenumber="60">
2092
2134
 
2093
2135
 
2094
- <code class="ruby"> if m = @rack_request.referrer.match(/^(https?:\/\/)?([a-zA-Z0-9\.\-]+\.)?(#{referrer})\.([a-zA-Z\.]+)(:[0-9]+)?(\/.*)?$/)</code>
2136
+ <code class="ruby"> if m = @rack_request.referrer.match(/^(https?:\/\/)?([a-zA-Z0-9\.\-]+\.)?(#{referrer})\.([a-zA-Z\.]+)(:[0-9]+)?(\/.*)?$/)</code>
2095
2137
  </li>
2096
2138
 
2097
2139
  <li class="missed" data-hits="0" data-linenumber="61">
2098
2140
 
2099
2141
 
2100
- <code class="ruby"> &quot;REFERRER =&gt; #{m.to_a[3]}&quot;</code>
2142
+ <code class="ruby"> &quot;REFERRER =&gt; #{m.to_a[3]}&quot;</code>
2101
2143
  </li>
2102
2144
 
2103
2145
  <li class="missed" data-hits="0" data-linenumber="62">
2104
2146
 
2105
2147
 
2106
- <code class="ruby"> referrer = m.to_a[3]</code>
2148
+ <code class="ruby"> referrer = m.to_a[3]</code>
2107
2149
  </li>
2108
2150
 
2109
2151
  <li class="never" data-hits="" data-linenumber="63">
2110
2152
 
2111
2153
 
2112
- <code class="ruby"> else</code>
2154
+ <code class="ruby"> else</code>
2113
2155
  </li>
2114
2156
 
2115
2157
  <li class="missed" data-hits="0" data-linenumber="64">
2116
2158
 
2117
2159
 
2118
- <code class="ruby"> referrer = &#39;other&#39;</code>
2160
+ <code class="ruby"> referrer = &#39;other&#39;</code>
2119
2161
  </li>
2120
2162
 
2121
2163
  <li class="never" data-hits="" data-linenumber="65">
2122
2164
 
2123
2165
 
2124
- <code class="ruby"> end</code>
2166
+ <code class="ruby"> end</code>
2125
2167
  </li>
2126
2168
 
2127
2169
  <li class="never" data-hits="" data-linenumber="66">
2128
2170
 
2129
2171
 
2130
- <code class="ruby"> end</code>
2172
+ <code class="ruby"> end</code>
2131
2173
  </li>
2132
2174
 
2133
2175
  <li class="never" data-hits="" data-linenumber="67">
2134
2176
 
2135
2177
 
2136
- <code class="ruby"> else</code>
2178
+ <code class="ruby"> else</code>
2137
2179
  </li>
2138
2180
 
2139
2181
  <li class="covered" data-hits="3" data-linenumber="68">
2140
2182
  <span class="hits">3</span>
2141
2183
 
2142
- <code class="ruby"> referrer = &#39;organic&#39;</code>
2184
+ <code class="ruby"> referrer = &#39;organic&#39;</code>
2143
2185
  </li>
2144
2186
 
2145
2187
  <li class="never" data-hits="" data-linenumber="69">
2146
2188
 
2147
2189
 
2148
- <code class="ruby"> end</code>
2190
+ <code class="ruby"> end</code>
2149
2191
  </li>
2150
2192
 
2151
2193
  <li class="covered" data-hits="3" data-linenumber="70">
2152
2194
  <span class="hits">3</span>
2153
2195
 
2154
- <code class="ruby"> return referrer</code>
2196
+ <code class="ruby"> return referrer</code>
2155
2197
  </li>
2156
2198
 
2157
2199
  <li class="never" data-hits="" data-linenumber="71">
2158
2200
 
2159
2201
 
2160
- <code class="ruby"> end</code>
2202
+ <code class="ruby"> end</code>
2161
2203
  </li>
2162
2204
 
2163
2205
  <li class="never" data-hits="" data-linenumber="72">
@@ -2169,55 +2211,55 @@
2169
2211
  <li class="never" data-hits="" data-linenumber="73">
2170
2212
 
2171
2213
 
2172
- <code class="ruby"> # track the ratio of URL&#39;s visits</code>
2214
+ <code class="ruby"> # track the ratio of URL&#39;s visits</code>
2173
2215
  </li>
2174
2216
 
2175
2217
  <li class="covered" data-hits="1" data-linenumber="74">
2176
2218
  <span class="hits">1</span>
2177
2219
 
2178
- <code class="ruby"> def url_ratio_per_hit</code>
2220
+ <code class="ruby"> def url_ratio_per_hit</code>
2179
2221
  </li>
2180
2222
 
2181
2223
  <li class="covered" data-hits="4" data-linenumber="75">
2182
2224
  <span class="hits">4</span>
2183
2225
 
2184
- <code class="ruby"> return @rack_request.path</code>
2226
+ <code class="ruby"> return @rack_request.path</code>
2185
2227
  </li>
2186
2228
 
2187
2229
  <li class="never" data-hits="" data-linenumber="76">
2188
2230
 
2189
2231
 
2190
- <code class="ruby"> end</code>
2232
+ <code class="ruby"> end</code>
2191
2233
  </li>
2192
2234
 
2193
2235
  <li class="never" data-hits="" data-linenumber="77">
2194
2236
 
2195
2237
 
2196
- <code class="ruby"> </code>
2238
+ <code class="ruby"> </code>
2197
2239
  </li>
2198
2240
 
2199
2241
  <li class="never" data-hits="" data-linenumber="78">
2200
2242
 
2201
2243
 
2202
- <code class="ruby"> # track the landing pages ratio</code>
2244
+ <code class="ruby"> # track the landing pages ratio</code>
2203
2245
  </li>
2204
2246
 
2205
2247
  <li class="covered" data-hits="1" data-linenumber="79">
2206
2248
  <span class="hits">1</span>
2207
2249
 
2208
- <code class="ruby"> def landing_page_ratio_per_hit</code>
2250
+ <code class="ruby"> def landing_page_ratio_per_hit</code>
2209
2251
  </li>
2210
2252
 
2211
2253
  <li class="covered" data-hits="4" data-linenumber="80">
2212
2254
  <span class="hits">4</span>
2213
2255
 
2214
- <code class="ruby"> return @rack_request.path if @page_view_seq_no.to_i == 0</code>
2256
+ <code class="ruby"> return @rack_request.path if @page_view_seq_no.to_i == 0</code>
2215
2257
  </li>
2216
2258
 
2217
2259
  <li class="never" data-hits="" data-linenumber="81">
2218
2260
 
2219
2261
 
2220
- <code class="ruby"> end</code>
2262
+ <code class="ruby"> end</code>
2221
2263
  </li>
2222
2264
 
2223
2265
  <li class="never" data-hits="" data-linenumber="82">
@@ -2229,25 +2271,25 @@
2229
2271
  <li class="never" data-hits="" data-linenumber="83">
2230
2272
 
2231
2273
 
2232
- <code class="ruby"> # track the landing pages ratio</code>
2274
+ <code class="ruby"> # track the landing pages ratio</code>
2233
2275
  </li>
2234
2276
 
2235
2277
  <li class="covered" data-hits="1" data-linenumber="84">
2236
2278
  <span class="hits">1</span>
2237
2279
 
2238
- <code class="ruby"> def http_response_ratio_per_hit</code>
2280
+ <code class="ruby"> def http_response_ratio_per_hit</code>
2239
2281
  </li>
2240
2282
 
2241
2283
  <li class="covered" data-hits="4" data-linenumber="85">
2242
2284
  <span class="hits">4</span>
2243
2285
 
2244
- <code class="ruby"> return @rack_response.status.to_s</code>
2286
+ <code class="ruby"> return @rack_response.status.to_s</code>
2245
2287
  </li>
2246
2288
 
2247
2289
  <li class="never" data-hits="" data-linenumber="86">
2248
2290
 
2249
2291
 
2250
- <code class="ruby"> end</code>
2292
+ <code class="ruby"> end</code>
2251
2293
  </li>
2252
2294
 
2253
2295
  <li class="never" data-hits="" data-linenumber="87">
@@ -2259,25 +2301,25 @@
2259
2301
  <li class="covered" data-hits="1" data-linenumber="88">
2260
2302
  <span class="hits">1</span>
2261
2303
 
2262
- <code class="ruby"> private</code>
2304
+ <code class="ruby"> private</code>
2263
2305
  </li>
2264
2306
 
2265
2307
  <li class="covered" data-hits="1" data-linenumber="89">
2266
2308
  <span class="hits">1</span>
2267
2309
 
2268
- <code class="ruby"> def user_agent</code>
2310
+ <code class="ruby"> def user_agent</code>
2269
2311
  </li>
2270
2312
 
2271
2313
  <li class="covered" data-hits="12" data-linenumber="90">
2272
2314
  <span class="hits">12</span>
2273
2315
 
2274
- <code class="ruby"> Browser.new(:ua =&gt; @rack_request.user_agent, :accept_language =&gt; &#39;en-us&#39;)</code>
2316
+ <code class="ruby"> Browser.new(:ua =&gt; @rack_request.user_agent, :accept_language =&gt; &#39;en-us&#39;)</code>
2275
2317
  </li>
2276
2318
 
2277
2319
  <li class="never" data-hits="" data-linenumber="91">
2278
2320
 
2279
2321
 
2280
- <code class="ruby"> end</code>
2322
+ <code class="ruby"> end</code>
2281
2323
  </li>
2282
2324
 
2283
2325
  <li class="never" data-hits="" data-linenumber="92">
@@ -2289,13 +2331,13 @@
2289
2331
  <li class="never" data-hits="" data-linenumber="93">
2290
2332
 
2291
2333
 
2292
- <code class="ruby"> end</code>
2334
+ <code class="ruby"> end</code>
2293
2335
  </li>
2294
2336
 
2295
2337
  <li class="never" data-hits="" data-linenumber="94">
2296
2338
 
2297
2339
 
2298
- <code class="ruby"> end</code>
2340
+ <code class="ruby">end</code>
2299
2341
  </li>
2300
2342
 
2301
2343
  <li class="never" data-hits="" data-linenumber="95">
@@ -2709,19 +2751,19 @@
2709
2751
  <li class="covered" data-hits="1" data-linenumber="1">
2710
2752
  <span class="hits">1</span>
2711
2753
 
2712
- <code class="ruby"> module RedisAnalytics</code>
2754
+ <code class="ruby">module RedisAnalytics</code>
2713
2755
  </li>
2714
2756
 
2715
2757
  <li class="covered" data-hits="1" data-linenumber="2">
2716
2758
  <span class="hits">1</span>
2717
2759
 
2718
- <code class="ruby"> VERSION = &#39;0.7.0&#39;</code>
2760
+ <code class="ruby"> VERSION = &#39;1.0.0&#39;</code>
2719
2761
  </li>
2720
2762
 
2721
2763
  <li class="never" data-hits="" data-linenumber="3">
2722
2764
 
2723
2765
 
2724
- <code class="ruby"> end</code>
2766
+ <code class="ruby">end</code>
2725
2767
  </li>
2726
2768
 
2727
2769
  <li class="never" data-hits="" data-linenumber="4">
@@ -2751,19 +2793,19 @@
2751
2793
  <li class="covered" data-hits="1" data-linenumber="1">
2752
2794
  <span class="hits">1</span>
2753
2795
 
2754
- <code class="ruby"> module RedisAnalytics</code>
2796
+ <code class="ruby">module RedisAnalytics</code>
2755
2797
  </li>
2756
2798
 
2757
2799
  <li class="covered" data-hits="1" data-linenumber="2">
2758
2800
  <span class="hits">1</span>
2759
2801
 
2760
- <code class="ruby"> class Visit</code>
2802
+ <code class="ruby"> class Visit</code>
2761
2803
  </li>
2762
2804
 
2763
2805
  <li class="covered" data-hits="1" data-linenumber="3">
2764
2806
  <span class="hits">1</span>
2765
2807
 
2766
- <code class="ruby"> include Metrics</code>
2808
+ <code class="ruby"> include Metrics</code>
2767
2809
  </li>
2768
2810
 
2769
2811
  <li class="never" data-hits="" data-linenumber="4">
@@ -2775,25 +2817,25 @@
2775
2817
  <li class="never" data-hits="" data-linenumber="5">
2776
2818
 
2777
2819
 
2778
- <code class="ruby"> # This class represents one unique visit</code>
2820
+ <code class="ruby"> # This class represents one unique visit</code>
2779
2821
  </li>
2780
2822
 
2781
2823
  <li class="never" data-hits="" data-linenumber="6">
2782
2824
 
2783
2825
 
2784
- <code class="ruby"> # User may have never visited the site</code>
2826
+ <code class="ruby"> # User may have never visited the site</code>
2785
2827
  </li>
2786
2828
 
2787
2829
  <li class="never" data-hits="" data-linenumber="7">
2788
2830
 
2789
2831
 
2790
- <code class="ruby"> # User may have visited before but his visit is expired</code>
2832
+ <code class="ruby"> # User may have visited before but his visit is expired</code>
2791
2833
  </li>
2792
2834
 
2793
2835
  <li class="never" data-hits="" data-linenumber="8">
2794
2836
 
2795
2837
 
2796
- <code class="ruby"> # Everything counted here is unique for a visit</code>
2838
+ <code class="ruby"> # Everything counted here is unique for a visit</code>
2797
2839
  </li>
2798
2840
 
2799
2841
  <li class="never" data-hits="" data-linenumber="9">
@@ -2805,37 +2847,37 @@
2805
2847
  <li class="never" data-hits="" data-linenumber="10">
2806
2848
 
2807
2849
 
2808
- <code class="ruby"> # helpers</code>
2850
+ <code class="ruby"> # helpers</code>
2809
2851
  </li>
2810
2852
 
2811
2853
  <li class="covered" data-hits="1" data-linenumber="11">
2812
2854
  <span class="hits">1</span>
2813
2855
 
2814
- <code class="ruby"> def for_each_time_range(t)</code>
2856
+ <code class="ruby"> def for_each_time_range(t)</code>
2815
2857
  </li>
2816
2858
 
2817
2859
  <li class="covered" data-hits="228" data-linenumber="12">
2818
2860
  <span class="hits">228</span>
2819
2861
 
2820
- <code class="ruby"> RedisAnalytics.redis_key_timestamps.map{|x, y| t.strftime(x)}.each do |ts|</code>
2862
+ <code class="ruby"> RedisAnalytics.redis_key_timestamps.map{|x, y| t.strftime(x)}.each do |ts|</code>
2821
2863
  </li>
2822
2864
 
2823
2865
  <li class="covered" data-hits="190" data-linenumber="13">
2824
2866
  <span class="hits">190</span>
2825
2867
 
2826
- <code class="ruby"> yield(ts)</code>
2868
+ <code class="ruby"> yield(ts)</code>
2827
2869
  </li>
2828
2870
 
2829
2871
  <li class="never" data-hits="" data-linenumber="14">
2830
2872
 
2831
2873
 
2832
- <code class="ruby"> end</code>
2874
+ <code class="ruby"> end</code>
2833
2875
  </li>
2834
2876
 
2835
2877
  <li class="never" data-hits="" data-linenumber="15">
2836
2878
 
2837
2879
 
2838
- <code class="ruby"> end</code>
2880
+ <code class="ruby"> end</code>
2839
2881
  </li>
2840
2882
 
2841
2883
  <li class="never" data-hits="" data-linenumber="16">
@@ -2847,25 +2889,25 @@
2847
2889
  <li class="covered" data-hits="1" data-linenumber="17">
2848
2890
  <span class="hits">1</span>
2849
2891
 
2850
- <code class="ruby"> def first_visit_info</code>
2892
+ <code class="ruby"> def first_visit_info</code>
2851
2893
  </li>
2852
2894
 
2853
2895
  <li class="covered" data-hits="12" data-linenumber="18">
2854
2896
  <span class="hits">12</span>
2855
2897
 
2856
- <code class="ruby"> cookie = @rack_request.cookies[RedisAnalytics.first_visit_cookie_name]</code>
2898
+ <code class="ruby"> cookie = @rack_request.cookies[RedisAnalytics.first_visit_cookie_name]</code>
2857
2899
  </li>
2858
2900
 
2859
2901
  <li class="covered" data-hits="12" data-linenumber="19">
2860
2902
  <span class="hits">12</span>
2861
2903
 
2862
- <code class="ruby"> return cookie ? cookie.split(&#39;.&#39;) : []</code>
2904
+ <code class="ruby"> return cookie ? cookie.split(&#39;.&#39;) : []</code>
2863
2905
  </li>
2864
2906
 
2865
2907
  <li class="never" data-hits="" data-linenumber="20">
2866
2908
 
2867
2909
 
2868
- <code class="ruby"> end</code>
2910
+ <code class="ruby"> end</code>
2869
2911
  </li>
2870
2912
 
2871
2913
  <li class="never" data-hits="" data-linenumber="21">
@@ -2877,25 +2919,25 @@
2877
2919
  <li class="covered" data-hits="1" data-linenumber="22">
2878
2920
  <span class="hits">1</span>
2879
2921
 
2880
- <code class="ruby"> def current_visit_info</code>
2922
+ <code class="ruby"> def current_visit_info</code>
2881
2923
  </li>
2882
2924
 
2883
2925
  <li class="covered" data-hits="19" data-linenumber="23">
2884
2926
  <span class="hits">19</span>
2885
2927
 
2886
- <code class="ruby"> cookie = @rack_request.cookies[RedisAnalytics.current_visit_cookie_name]</code>
2928
+ <code class="ruby"> cookie = @rack_request.cookies[RedisAnalytics.current_visit_cookie_name]</code>
2887
2929
  </li>
2888
2930
 
2889
2931
  <li class="covered" data-hits="19" data-linenumber="24">
2890
2932
  <span class="hits">19</span>
2891
2933
 
2892
- <code class="ruby"> return cookie ? cookie.split(&#39;.&#39;) : []</code>
2934
+ <code class="ruby"> return cookie ? cookie.split(&#39;.&#39;) : []</code>
2893
2935
  </li>
2894
2936
 
2895
2937
  <li class="never" data-hits="" data-linenumber="25">
2896
2938
 
2897
2939
 
2898
- <code class="ruby"> end</code>
2940
+ <code class="ruby"> end</code>
2899
2941
  </li>
2900
2942
 
2901
2943
  <li class="never" data-hits="" data-linenumber="26">
@@ -2907,49 +2949,49 @@
2907
2949
  <li class="never" data-hits="" data-linenumber="27">
2908
2950
 
2909
2951
 
2910
- <code class="ruby"> # method used in analytics.rb to initialize visit</code>
2952
+ <code class="ruby"> # method used in analytics.rb to initialize visit</code>
2911
2953
  </li>
2912
2954
 
2913
2955
  <li class="covered" data-hits="1" data-linenumber="28">
2914
2956
  <span class="hits">1</span>
2915
2957
 
2916
- <code class="ruby"> def initialize(request, response)</code>
2958
+ <code class="ruby"> def initialize(request, response)</code>
2917
2959
  </li>
2918
2960
 
2919
2961
  <li class="covered" data-hits="4" data-linenumber="29">
2920
2962
  <span class="hits">4</span>
2921
2963
 
2922
- <code class="ruby"> @t = Time.now</code>
2964
+ <code class="ruby"> @t = Time.now</code>
2923
2965
  </li>
2924
2966
 
2925
2967
  <li class="covered" data-hits="4" data-linenumber="30">
2926
2968
  <span class="hits">4</span>
2927
2969
 
2928
- <code class="ruby"> @redis_key_prefix = &quot;#{RedisAnalytics.redis_namespace}:&quot;</code>
2970
+ <code class="ruby"> @redis_key_prefix = &quot;#{RedisAnalytics.redis_namespace}:&quot;</code>
2929
2971
  </li>
2930
2972
 
2931
2973
  <li class="covered" data-hits="4" data-linenumber="31">
2932
2974
  <span class="hits">4</span>
2933
2975
 
2934
- <code class="ruby"> @rack_request = request</code>
2976
+ <code class="ruby"> @rack_request = request</code>
2935
2977
  </li>
2936
2978
 
2937
2979
  <li class="covered" data-hits="4" data-linenumber="32">
2938
2980
  <span class="hits">4</span>
2939
2981
 
2940
- <code class="ruby"> @rack_response = response</code>
2982
+ <code class="ruby"> @rack_response = response</code>
2941
2983
  </li>
2942
2984
 
2943
2985
  <li class="covered" data-hits="4" data-linenumber="33">
2944
2986
  <span class="hits">4</span>
2945
2987
 
2946
- <code class="ruby"> @first_visit_seq = first_visit_info[0] || current_visit_info[0]</code>
2988
+ <code class="ruby"> @first_visit_seq = first_visit_info[0] || current_visit_info[0]</code>
2947
2989
  </li>
2948
2990
 
2949
2991
  <li class="covered" data-hits="4" data-linenumber="34">
2950
2992
  <span class="hits">4</span>
2951
2993
 
2952
- <code class="ruby"> @current_visit_seq = current_visit_info[1]</code>
2994
+ <code class="ruby"> @current_visit_seq = current_visit_info[1]</code>
2953
2995
  </li>
2954
2996
 
2955
2997
  <li class="never" data-hits="" data-linenumber="35">
@@ -2961,13 +3003,13 @@
2961
3003
  <li class="covered" data-hits="4" data-linenumber="36">
2962
3004
  <span class="hits">4</span>
2963
3005
 
2964
- <code class="ruby"> @first_visit_time = first_visit_info[1]</code>
3006
+ <code class="ruby"> @first_visit_time = first_visit_info[1]</code>
2965
3007
  </li>
2966
3008
 
2967
3009
  <li class="covered" data-hits="4" data-linenumber="37">
2968
3010
  <span class="hits">4</span>
2969
3011
 
2970
- <code class="ruby"> @last_visit_time = first_visit_info[2]</code>
3012
+ <code class="ruby"> @last_visit_time = first_visit_info[2]</code>
2971
3013
  </li>
2972
3014
 
2973
3015
  <li class="never" data-hits="" data-linenumber="38">
@@ -2979,25 +3021,25 @@
2979
3021
  <li class="covered" data-hits="4" data-linenumber="39">
2980
3022
  <span class="hits">4</span>
2981
3023
 
2982
- <code class="ruby"> @page_view_seq_no = current_visit_info[2] || 0</code>
3024
+ <code class="ruby"> @page_view_seq_no = current_visit_info[2] || 0</code>
2983
3025
  </li>
2984
3026
 
2985
3027
  <li class="covered" data-hits="4" data-linenumber="40">
2986
3028
  <span class="hits">4</span>
2987
3029
 
2988
- <code class="ruby"> @last_visit_start_time = current_visit_info[3]</code>
3030
+ <code class="ruby"> @last_visit_start_time = current_visit_info[3]</code>
2989
3031
  </li>
2990
3032
 
2991
3033
  <li class="covered" data-hits="4" data-linenumber="41">
2992
3034
  <span class="hits">4</span>
2993
3035
 
2994
- <code class="ruby"> @last_visit_end_time = current_visit_info[4]</code>
3036
+ <code class="ruby"> @last_visit_end_time = current_visit_info[4]</code>
2995
3037
  </li>
2996
3038
 
2997
3039
  <li class="never" data-hits="" data-linenumber="42">
2998
3040
 
2999
3041
 
3000
- <code class="ruby"> end</code>
3042
+ <code class="ruby"> end</code>
3001
3043
  </li>
3002
3044
 
3003
3045
  <li class="never" data-hits="" data-linenumber="43">
@@ -3009,127 +3051,127 @@
3009
3051
  <li class="never" data-hits="" data-linenumber="44">
3010
3052
 
3011
3053
 
3012
- <code class="ruby"> # called from analytics.rb</code>
3054
+ <code class="ruby"> # called from analytics.rb</code>
3013
3055
  </li>
3014
3056
 
3015
3057
  <li class="covered" data-hits="1" data-linenumber="45">
3016
3058
  <span class="hits">1</span>
3017
3059
 
3018
- <code class="ruby"> def record</code>
3060
+ <code class="ruby"> def record</code>
3019
3061
  </li>
3020
3062
 
3021
3063
  <li class="covered" data-hits="4" data-linenumber="46">
3022
3064
  <span class="hits">4</span>
3023
3065
 
3024
- <code class="ruby"> if @current_visit_seq</code>
3066
+ <code class="ruby"> if @current_visit_seq</code>
3025
3067
  </li>
3026
3068
 
3027
3069
  <li class="covered" data-hits="1" data-linenumber="47">
3028
3070
  <span class="hits">1</span>
3029
3071
 
3030
- <code class="ruby"> track(&quot;visit_time&quot;, @t.to_i - @last_visit_end_time.to_i)</code>
3072
+ <code class="ruby"> track(&quot;visit_time&quot;, @t.to_i - @last_visit_end_time.to_i)</code>
3031
3073
  </li>
3032
3074
 
3033
3075
  <li class="never" data-hits="" data-linenumber="48">
3034
3076
 
3035
3077
 
3036
- <code class="ruby"> else</code>
3078
+ <code class="ruby"> else</code>
3037
3079
  </li>
3038
3080
 
3039
3081
  <li class="covered" data-hits="3" data-linenumber="49">
3040
3082
  <span class="hits">3</span>
3041
3083
 
3042
- <code class="ruby"> @current_visit_seq ||= counter(&quot;visits&quot;)</code>
3084
+ <code class="ruby"> @current_visit_seq ||= counter(&quot;visits&quot;)</code>
3043
3085
  </li>
3044
3086
 
3045
3087
  <li class="covered" data-hits="3" data-linenumber="50">
3046
3088
  <span class="hits">3</span>
3047
3089
 
3048
- <code class="ruby"> track(&quot;visits&quot;, 1) # track core &#39;visit&#39; metric</code>
3090
+ <code class="ruby"> track(&quot;visits&quot;, 1) # track core &#39;visit&#39; metric</code>
3049
3091
  </li>
3050
3092
 
3051
3093
  <li class="covered" data-hits="3" data-linenumber="51">
3052
3094
  <span class="hits">3</span>
3053
3095
 
3054
- <code class="ruby"> if @first_visit_seq</code>
3096
+ <code class="ruby"> if @first_visit_seq</code>
3055
3097
  </li>
3056
3098
 
3057
3099
  <li class="missed" data-hits="0" data-linenumber="52">
3058
3100
 
3059
3101
 
3060
- <code class="ruby"> track(&quot;repeat_visits&quot;, 1)</code>
3102
+ <code class="ruby"> track(&quot;repeat_visits&quot;, 1)</code>
3061
3103
  </li>
3062
3104
 
3063
3105
  <li class="never" data-hits="" data-linenumber="53">
3064
3106
 
3065
3107
 
3066
- <code class="ruby"> else</code>
3108
+ <code class="ruby"> else</code>
3067
3109
  </li>
3068
3110
 
3069
3111
  <li class="covered" data-hits="3" data-linenumber="54">
3070
3112
  <span class="hits">3</span>
3071
3113
 
3072
- <code class="ruby"> @first_visit_seq ||= counter(&quot;unique_visits&quot;)</code>
3114
+ <code class="ruby"> @first_visit_seq ||= counter(&quot;unique_visits&quot;)</code>
3073
3115
  </li>
3074
3116
 
3075
3117
  <li class="covered" data-hits="3" data-linenumber="55">
3076
3118
  <span class="hits">3</span>
3077
3119
 
3078
- <code class="ruby"> track(&quot;first_visits&quot;, 1)</code>
3120
+ <code class="ruby"> track(&quot;first_visits&quot;, 1)</code>
3079
3121
  </li>
3080
3122
 
3081
3123
  <li class="covered" data-hits="3" data-linenumber="56">
3082
3124
  <span class="hits">3</span>
3083
3125
 
3084
- <code class="ruby"> track(&quot;unique_visits&quot;, 1)</code>
3126
+ <code class="ruby"> track(&quot;unique_visits&quot;, 1)</code>
3085
3127
  </li>
3086
3128
 
3087
3129
  <li class="never" data-hits="" data-linenumber="57">
3088
3130
 
3089
3131
 
3090
- <code class="ruby"> end</code>
3132
+ <code class="ruby"> end</code>
3091
3133
  </li>
3092
3134
 
3093
3135
  <li class="covered" data-hits="3" data-linenumber="58">
3094
3136
  <span class="hits">3</span>
3095
3137
 
3096
- <code class="ruby"> exec_custom_methods(&#39;visit&#39;) # custom methods that are measured on a per-visit basis</code>
3138
+ <code class="ruby"> exec_custom_methods(&#39;visit&#39;) # custom methods that are measured on a per-visit basis</code>
3097
3139
  </li>
3098
3140
 
3099
3141
  <li class="never" data-hits="" data-linenumber="59">
3100
3142
 
3101
3143
 
3102
- <code class="ruby"> end</code>
3144
+ <code class="ruby"> end</code>
3103
3145
  </li>
3104
3146
 
3105
3147
  <li class="covered" data-hits="4" data-linenumber="60">
3106
3148
  <span class="hits">4</span>
3107
3149
 
3108
- <code class="ruby"> exec_custom_methods(&#39;hit&#39;) # custom methods that are measured on a per-page-view (per-hit) basis</code>
3150
+ <code class="ruby"> exec_custom_methods(&#39;hit&#39;) # custom methods that are measured on a per-page-view (per-hit) basis</code>
3109
3151
  </li>
3110
3152
 
3111
3153
  <li class="covered" data-hits="4" data-linenumber="61">
3112
3154
  <span class="hits">4</span>
3113
3155
 
3114
- <code class="ruby"> track(&quot;page_views&quot;, 1) # track core &#39;page_view&#39; metric</code>
3156
+ <code class="ruby"> track(&quot;page_views&quot;, 1) # track core &#39;page_view&#39; metric</code>
3115
3157
  </li>
3116
3158
 
3117
3159
  <li class="covered" data-hits="4" data-linenumber="62">
3118
3160
  <span class="hits">4</span>
3119
3161
 
3120
- <code class="ruby"> track(&quot;second_page_views&quot;, 1) if @page_view_seq_no.to_i == 1 # @last_visit_start_time and (@last_visit_start_time.to_i == @last_visit_end_time.to_i)</code>
3162
+ <code class="ruby"> track(&quot;second_page_views&quot;, 1) if @page_view_seq_no.to_i == 1 # @last_visit_start_time and (@last_visit_start_time.to_i == @last_visit_end_time.to_i)</code>
3121
3163
  </li>
3122
3164
 
3123
3165
  <li class="covered" data-hits="4" data-linenumber="63">
3124
3166
  <span class="hits">4</span>
3125
3167
 
3126
- <code class="ruby"> @rack_response</code>
3168
+ <code class="ruby"> @rack_response</code>
3127
3169
  </li>
3128
3170
 
3129
3171
  <li class="never" data-hits="" data-linenumber="64">
3130
3172
 
3131
3173
 
3132
- <code class="ruby"> end</code>
3174
+ <code class="ruby"> end</code>
3133
3175
  </li>
3134
3176
 
3135
3177
  <li class="never" data-hits="" data-linenumber="65">
@@ -3141,73 +3183,73 @@
3141
3183
  <li class="covered" data-hits="1" data-linenumber="66">
3142
3184
  <span class="hits">1</span>
3143
3185
 
3144
- <code class="ruby"> def exec_custom_methods(type)</code>
3186
+ <code class="ruby"> def exec_custom_methods(type)</code>
3145
3187
  </li>
3146
3188
 
3147
3189
  <li class="covered" data-hits="7" data-linenumber="67">
3148
3190
  <span class="hits">7</span>
3149
3191
 
3150
- <code class="ruby"> Metrics.public_instance_methods.each do |meth|</code>
3192
+ <code class="ruby"> Metrics.public_instance_methods.each do |meth|</code>
3151
3193
  </li>
3152
3194
 
3153
3195
  <li class="covered" data-hits="112" data-linenumber="68">
3154
3196
  <span class="hits">112</span>
3155
3197
 
3156
- <code class="ruby"> if m = meth.to_s.match(/^([a-z_]*)_(count|ratio)_per_#{type}$/)</code>
3198
+ <code class="ruby"> if m = meth.to_s.match(/^([a-z_]*)_(count|ratio)_per_#{type}$/)</code>
3157
3199
  </li>
3158
3200
 
3159
3201
  <li class="covered" data-hits="53" data-linenumber="69">
3160
3202
  <span class="hits">53</span>
3161
3203
 
3162
- <code class="ruby"> begin</code>
3204
+ <code class="ruby"> begin</code>
3163
3205
  </li>
3164
3206
 
3165
3207
  <li class="covered" data-hits="53" data-linenumber="70">
3166
3208
  <span class="hits">53</span>
3167
3209
 
3168
- <code class="ruby"> return_value = self.send(meth)</code>
3210
+ <code class="ruby"> return_value = self.send(meth)</code>
3169
3211
  </li>
3170
3212
 
3171
3213
  <li class="covered" data-hits="53" data-linenumber="71">
3172
3214
  <span class="hits">53</span>
3173
3215
 
3174
- <code class="ruby"> track(m.to_a[1], return_value) if return_value</code>
3216
+ <code class="ruby"> track(m.to_a[1], return_value) if return_value</code>
3175
3217
  </li>
3176
3218
 
3177
3219
  <li class="never" data-hits="" data-linenumber="72">
3178
3220
 
3179
3221
 
3180
- <code class="ruby"> rescue =&gt; e</code>
3222
+ <code class="ruby"> rescue =&gt; e</code>
3181
3223
  </li>
3182
3224
 
3183
3225
  <li class="missed" data-hits="0" data-linenumber="73">
3184
3226
 
3185
3227
 
3186
- <code class="ruby"> warn &quot;#{meth} resulted in an exception #{e}&quot;</code>
3228
+ <code class="ruby"> warn &quot;#{meth} resulted in an exception #{e}&quot;</code>
3187
3229
  </li>
3188
3230
 
3189
3231
  <li class="never" data-hits="" data-linenumber="74">
3190
3232
 
3191
3233
 
3192
- <code class="ruby"> end</code>
3234
+ <code class="ruby"> end</code>
3193
3235
  </li>
3194
3236
 
3195
3237
  <li class="never" data-hits="" data-linenumber="75">
3196
3238
 
3197
3239
 
3198
- <code class="ruby"> end</code>
3240
+ <code class="ruby"> end</code>
3199
3241
  </li>
3200
3242
 
3201
3243
  <li class="never" data-hits="" data-linenumber="76">
3202
3244
 
3203
3245
 
3204
- <code class="ruby"> end</code>
3246
+ <code class="ruby"> end</code>
3205
3247
  </li>
3206
3248
 
3207
3249
  <li class="never" data-hits="" data-linenumber="77">
3208
3250
 
3209
3251
 
3210
- <code class="ruby"> end</code>
3252
+ <code class="ruby"> end</code>
3211
3253
  </li>
3212
3254
 
3213
3255
  <li class="never" data-hits="" data-linenumber="78">
@@ -3219,43 +3261,43 @@
3219
3261
  <li class="never" data-hits="" data-linenumber="79">
3220
3262
 
3221
3263
 
3222
- <code class="ruby"> # helpers</code>
3264
+ <code class="ruby"> # helpers</code>
3223
3265
  </li>
3224
3266
 
3225
3267
  <li class="covered" data-hits="1" data-linenumber="80">
3226
3268
  <span class="hits">1</span>
3227
3269
 
3228
- <code class="ruby"> def counter(metric_name)</code>
3270
+ <code class="ruby"> def counter(metric_name)</code>
3229
3271
  </li>
3230
3272
 
3231
3273
  <li class="covered" data-hits="6" data-linenumber="81">
3232
3274
  <span class="hits">6</span>
3233
3275
 
3234
- <code class="ruby"> n = RedisAnalytics.redis_connection.incr(&quot;#{@redis_key_prefix}#{metric_name}&quot;)</code>
3276
+ <code class="ruby"> n = RedisAnalytics.redis_connection.incr(&quot;#{@redis_key_prefix}#{metric_name}&quot;)</code>
3235
3277
  </li>
3236
3278
 
3237
3279
  <li class="never" data-hits="" data-linenumber="82">
3238
3280
 
3239
3281
 
3240
- <code class="ruby"> # to debug, uncomment this line</code>
3282
+ <code class="ruby"> # to debug, uncomment this line</code>
3241
3283
  </li>
3242
3284
 
3243
3285
  <li class="never" data-hits="" data-linenumber="83">
3244
3286
 
3245
3287
 
3246
- <code class="ruby"> # puts &quot;COUNT #{metric_name} -&gt; #{n}&quot;</code>
3288
+ <code class="ruby"> # puts &quot;COUNT #{metric_name} -&gt; #{n}&quot;</code>
3247
3289
  </li>
3248
3290
 
3249
3291
  <li class="covered" data-hits="6" data-linenumber="84">
3250
3292
  <span class="hits">6</span>
3251
3293
 
3252
- <code class="ruby"> return n</code>
3294
+ <code class="ruby"> return n</code>
3253
3295
  </li>
3254
3296
 
3255
3297
  <li class="never" data-hits="" data-linenumber="85">
3256
3298
 
3257
3299
 
3258
- <code class="ruby"> end</code>
3300
+ <code class="ruby"> end</code>
3259
3301
  </li>
3260
3302
 
3261
3303
  <li class="never" data-hits="" data-linenumber="86">
@@ -3267,43 +3309,43 @@
3267
3309
  <li class="covered" data-hits="1" data-linenumber="87">
3268
3310
  <span class="hits">1</span>
3269
3311
 
3270
- <code class="ruby"> def updated_current_visit_info</code>
3312
+ <code class="ruby"> def updated_current_visit_info</code>
3271
3313
  </li>
3272
3314
 
3273
3315
  <li class="covered" data-hits="4" data-linenumber="88">
3274
3316
  <span class="hits">4</span>
3275
3317
 
3276
- <code class="ruby"> value = [@first_visit_seq.to_i, @current_visit_seq.to_i, @page_view_seq_no.to_i + 1, (@last_visit_start_time || @t).to_i, @t.to_i]</code>
3318
+ <code class="ruby"> value = [@first_visit_seq.to_i, @current_visit_seq.to_i, @page_view_seq_no.to_i + 1, (@last_visit_start_time || @t).to_i, @t.to_i]</code>
3277
3319
  </li>
3278
3320
 
3279
3321
  <li class="never" data-hits="" data-linenumber="89">
3280
3322
 
3281
3323
 
3282
- <code class="ruby"> # to debug, uncomment this line</code>
3324
+ <code class="ruby"> # to debug, uncomment this line</code>
3283
3325
  </li>
3284
3326
 
3285
3327
  <li class="never" data-hits="" data-linenumber="90">
3286
3328
 
3287
3329
 
3288
- <code class="ruby"> # puts &quot;UPDATING VCN COOKIE -&gt; #{value}&quot;</code>
3330
+ <code class="ruby"> # puts &quot;UPDATING VCN COOKIE -&gt; #{value}&quot;</code>
3289
3331
  </li>
3290
3332
 
3291
3333
  <li class="covered" data-hits="4" data-linenumber="91">
3292
3334
  <span class="hits">4</span>
3293
3335
 
3294
- <code class="ruby"> expires = @t + RedisAnalytics.visit_timeout.to_i.minutes</code>
3336
+ <code class="ruby"> expires = @t + RedisAnalytics.visit_timeout.to_i.minutes</code>
3295
3337
  </li>
3296
3338
 
3297
3339
  <li class="covered" data-hits="4" data-linenumber="92">
3298
3340
  <span class="hits">4</span>
3299
3341
 
3300
- <code class="ruby"> {:value =&gt; value.join(&#39;.&#39;), :expires =&gt; expires}</code>
3342
+ <code class="ruby"> {:value =&gt; value.join(&#39;.&#39;), :expires =&gt; expires}</code>
3301
3343
  </li>
3302
3344
 
3303
3345
  <li class="never" data-hits="" data-linenumber="93">
3304
3346
 
3305
3347
 
3306
- <code class="ruby"> end</code>
3348
+ <code class="ruby"> end</code>
3307
3349
  </li>
3308
3350
 
3309
3351
  <li class="never" data-hits="" data-linenumber="94">
@@ -3315,43 +3357,43 @@
3315
3357
  <li class="covered" data-hits="1" data-linenumber="95">
3316
3358
  <span class="hits">1</span>
3317
3359
 
3318
- <code class="ruby"> def updated_first_visit_info</code>
3360
+ <code class="ruby"> def updated_first_visit_info</code>
3319
3361
  </li>
3320
3362
 
3321
3363
  <li class="covered" data-hits="4" data-linenumber="96">
3322
3364
  <span class="hits">4</span>
3323
3365
 
3324
- <code class="ruby"> value = [@first_visit_seq.to_i, (@first_visit_time || @t).to_i, @t.to_i]</code>
3366
+ <code class="ruby"> value = [@first_visit_seq.to_i, (@first_visit_time || @t).to_i, @t.to_i]</code>
3325
3367
  </li>
3326
3368
 
3327
3369
  <li class="never" data-hits="" data-linenumber="97">
3328
3370
 
3329
3371
 
3330
- <code class="ruby"> # to debug, uncomment this line</code>
3372
+ <code class="ruby"> # to debug, uncomment this line</code>
3331
3373
  </li>
3332
3374
 
3333
3375
  <li class="never" data-hits="" data-linenumber="98">
3334
3376
 
3335
3377
 
3336
- <code class="ruby"> # puts &quot;UPDATING RUCN COOKIE -&gt; #{value}&quot;</code>
3378
+ <code class="ruby"> # puts &quot;UPDATING RUCN COOKIE -&gt; #{value}&quot;</code>
3337
3379
  </li>
3338
3380
 
3339
3381
  <li class="covered" data-hits="4" data-linenumber="99">
3340
3382
  <span class="hits">4</span>
3341
3383
 
3342
- <code class="ruby"> expires = @t + 1.year</code>
3384
+ <code class="ruby"> expires = @t + 1.year</code>
3343
3385
  </li>
3344
3386
 
3345
3387
  <li class="covered" data-hits="4" data-linenumber="100">
3346
3388
  <span class="hits">4</span>
3347
3389
 
3348
- <code class="ruby"> {:value =&gt; value.join(&#39;.&#39;), :expires =&gt; expires}</code>
3390
+ <code class="ruby"> {:value =&gt; value.join(&#39;.&#39;), :expires =&gt; expires}</code>
3349
3391
  </li>
3350
3392
 
3351
3393
  <li class="never" data-hits="" data-linenumber="101">
3352
3394
 
3353
3395
 
3354
- <code class="ruby"> end</code>
3396
+ <code class="ruby"> end</code>
3355
3397
  </li>
3356
3398
 
3357
3399
  <li class="never" data-hits="" data-linenumber="102">
@@ -3363,91 +3405,91 @@
3363
3405
  <li class="covered" data-hits="1" data-linenumber="103">
3364
3406
  <span class="hits">1</span>
3365
3407
 
3366
- <code class="ruby"> def track(metric_name, metric_value)</code>
3408
+ <code class="ruby"> def track(metric_name, metric_value)</code>
3367
3409
  </li>
3368
3410
 
3369
3411
  <li class="covered" data-hits="38" data-linenumber="104">
3370
3412
  <span class="hits">38</span>
3371
3413
 
3372
- <code class="ruby"> n = 0</code>
3414
+ <code class="ruby"> n = 0</code>
3373
3415
  </li>
3374
3416
 
3375
3417
  <li class="covered" data-hits="38" data-linenumber="105">
3376
3418
  <span class="hits">38</span>
3377
3419
 
3378
- <code class="ruby"> RedisAnalytics.redis_connection.hmset(&quot;#{@redis_key_prefix}#METRICS&quot;, metric_name, metric_value.class)</code>
3420
+ <code class="ruby"> RedisAnalytics.redis_connection.hmset(&quot;#{@redis_key_prefix}#METRICS&quot;, metric_name, metric_value.class)</code>
3379
3421
  </li>
3380
3422
 
3381
3423
  <li class="covered" data-hits="38" data-linenumber="106">
3382
3424
  <span class="hits">38</span>
3383
3425
 
3384
- <code class="ruby"> for_each_time_range(@t) do |ts|</code>
3426
+ <code class="ruby"> for_each_time_range(@t) do |ts|</code>
3385
3427
  </li>
3386
3428
 
3387
3429
  <li class="covered" data-hits="190" data-linenumber="107">
3388
3430
  <span class="hits">190</span>
3389
3431
 
3390
- <code class="ruby"> key = &quot;#{@redis_key_prefix}#{metric_name}:#{ts}&quot;</code>
3432
+ <code class="ruby"> key = &quot;#{@redis_key_prefix}#{metric_name}:#{ts}&quot;</code>
3391
3433
  </li>
3392
3434
 
3393
3435
  <li class="covered" data-hits="190" data-linenumber="108">
3394
3436
  <span class="hits">190</span>
3395
3437
 
3396
- <code class="ruby"> if metric_value.is_a?(Fixnum)</code>
3438
+ <code class="ruby"> if metric_value.is_a?(Fixnum)</code>
3397
3439
  </li>
3398
3440
 
3399
3441
  <li class="covered" data-hits="75" data-linenumber="109">
3400
3442
  <span class="hits">75</span>
3401
3443
 
3402
- <code class="ruby"> n = RedisAnalytics.redis_connection.incrby(key, metric_value)</code>
3444
+ <code class="ruby"> n = RedisAnalytics.redis_connection.incrby(key, metric_value)</code>
3403
3445
  </li>
3404
3446
 
3405
3447
  <li class="never" data-hits="" data-linenumber="110">
3406
3448
 
3407
3449
 
3408
- <code class="ruby"> else</code>
3450
+ <code class="ruby"> else</code>
3409
3451
  </li>
3410
3452
 
3411
3453
  <li class="covered" data-hits="115" data-linenumber="111">
3412
3454
  <span class="hits">115</span>
3413
3455
 
3414
- <code class="ruby"> n = RedisAnalytics.redis_connection.zincrby(key, 1, metric_value)</code>
3456
+ <code class="ruby"> n = RedisAnalytics.redis_connection.zincrby(key, 1, metric_value)</code>
3415
3457
  </li>
3416
3458
 
3417
3459
  <li class="never" data-hits="" data-linenumber="112">
3418
3460
 
3419
3461
 
3420
- <code class="ruby"> end</code>
3462
+ <code class="ruby"> end</code>
3421
3463
  </li>
3422
3464
 
3423
3465
  <li class="never" data-hits="" data-linenumber="113">
3424
3466
 
3425
3467
 
3426
- <code class="ruby"> end</code>
3468
+ <code class="ruby"> end</code>
3427
3469
  </li>
3428
3470
 
3429
3471
  <li class="never" data-hits="" data-linenumber="114">
3430
3472
 
3431
3473
 
3432
- <code class="ruby"> # to debug, uncomment this line</code>
3474
+ <code class="ruby"> # to debug, uncomment this line</code>
3433
3475
  </li>
3434
3476
 
3435
3477
  <li class="never" data-hits="" data-linenumber="115">
3436
3478
 
3437
3479
 
3438
- <code class="ruby"> # puts &quot;TRACK #{metric_name} -&gt; #{n}&quot; </code>
3480
+ <code class="ruby"> # puts &quot;TRACK #{metric_name} -&gt; #{n}&quot; </code>
3439
3481
  </li>
3440
3482
 
3441
3483
  <li class="covered" data-hits="38" data-linenumber="116">
3442
3484
  <span class="hits">38</span>
3443
3485
 
3444
- <code class="ruby"> return n</code>
3486
+ <code class="ruby"> return n</code>
3445
3487
  </li>
3446
3488
 
3447
3489
  <li class="never" data-hits="" data-linenumber="117">
3448
3490
 
3449
3491
 
3450
- <code class="ruby"> end</code>
3492
+ <code class="ruby"> end</code>
3451
3493
  </li>
3452
3494
 
3453
3495
  <li class="never" data-hits="" data-linenumber="118">
@@ -3459,13 +3501,13 @@
3459
3501
  <li class="never" data-hits="" data-linenumber="119">
3460
3502
 
3461
3503
 
3462
- <code class="ruby"> end</code>
3504
+ <code class="ruby"> end</code>
3463
3505
  </li>
3464
3506
 
3465
3507
  <li class="never" data-hits="" data-linenumber="120">
3466
3508
 
3467
3509
 
3468
- <code class="ruby"> end</code>
3510
+ <code class="ruby">end</code>
3469
3511
  </li>
3470
3512
 
3471
3513
  <li class="never" data-hits="" data-linenumber="121">