redis_analytics 0.7.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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">