mitamirri 0.13.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. data/.document +5 -0
  2. data/.gitignore +26 -0
  3. data/README.rdoc +117 -0
  4. data/Rakefile +26 -0
  5. data/VERSION +1 -0
  6. data/app/controllers/application_controller.rb +10 -0
  7. data/app/controllers/trackable_actions_controller.rb +10 -0
  8. data/app/controllers/trackable_sessions_controller.rb +100 -0
  9. data/app/helpers/application_helper.rb +2 -0
  10. data/app/models/trackable_action.rb +193 -0
  11. data/app/models/trackable_location.rb +19 -0
  12. data/app/models/trackable_session.rb +352 -0
  13. data/app/models/trackable_stat.rb +64 -0
  14. data/app/views/layouts/application.html.erb +20 -0
  15. data/app/views/trackable_sessions/_keywords_graph.html.erb +24 -0
  16. data/app/views/trackable_sessions/_print_buttons.html.erb +3 -0
  17. data/app/views/trackable_sessions/_sessions.html.erb +26 -0
  18. data/app/views/trackable_sessions/_top_referrers.html.erb +24 -0
  19. data/app/views/trackable_sessions/_traffic_summary_all.html.erb +64 -0
  20. data/app/views/trackable_sessions/_traffic_summary_by_kind.html.erb +48 -0
  21. data/app/views/trackable_sessions/_visits_graph.html.erb +25 -0
  22. data/app/views/trackable_sessions/content.html.erb +119 -0
  23. data/app/views/trackable_sessions/explorer.html.erb +67 -0
  24. data/app/views/trackable_sessions/export.xls.erb +5 -0
  25. data/app/views/trackable_sessions/index.html.erb +47 -0
  26. data/app/views/trackable_sessions/intersite.html.erb +97 -0
  27. data/app/views/trackable_sessions/leads.html.erb +98 -0
  28. data/app/views/trackable_sessions/show.html.erb +113 -0
  29. data/app/views/trackable_sessions/visitor_profile.html.erb +114 -0
  30. data/config/boot.rb +110 -0
  31. data/config/database.yml +0 -0
  32. data/config/environment.rb +24 -0
  33. data/config/environments/development.rb +17 -0
  34. data/config/environments/production.rb +28 -0
  35. data/config/environments/test.rb +31 -0
  36. data/config/initializers/backtrace_silencers.rb +7 -0
  37. data/config/initializers/database.rb +1 -0
  38. data/config/initializers/inflections.rb +10 -0
  39. data/config/initializers/mime_types.rb +5 -0
  40. data/config/initializers/new_rails_defaults.rb +21 -0
  41. data/config/initializers/session_store.rb +15 -0
  42. data/config/locales/en.yml +5 -0
  43. data/config/routes.rb +11 -0
  44. data/db/development.sqlite3 +0 -0
  45. data/db/migrate/20100810173533_create_trackable_sessions.rb +23 -0
  46. data/db/migrate/20100810173605_create_trackable_actions.rb +20 -0
  47. data/db/test.sqlite3 +1 -0
  48. data/doc/README_FOR_APP +2 -0
  49. data/init.rb +8 -0
  50. data/lib/mitamirri/content_report.rb +75 -0
  51. data/lib/mitamirri/helper.rb +106 -0
  52. data/lib/mitamirri/intersite_traffic_report.rb +122 -0
  53. data/lib/mitamirri/leads_report.rb +90 -0
  54. data/lib/mitamirri/session_report.rb +219 -0
  55. data/lib/mitamirri/stat_report.rb +216 -0
  56. data/lib/mitamirri/tasks.rb +27 -0
  57. data/lib/mitamirri/visitor_profile_report.rb +127 -0
  58. data/lib/mitamirri.rb +15 -0
  59. data/log/development.log +0 -0
  60. data/log/production.log +0 -0
  61. data/log/server.log +0 -0
  62. data/log/test.log +0 -0
  63. data/mitamirri.gemspec +125 -0
  64. data/public/stylesheets/mitamirri.css +736 -0
  65. data/script/about +4 -0
  66. data/script/console +3 -0
  67. data/script/dbconsole +3 -0
  68. data/script/destroy +3 -0
  69. data/script/generate +3 -0
  70. data/script/performance/benchmarker +3 -0
  71. data/script/performance/profiler +3 -0
  72. data/script/plugin +3 -0
  73. data/script/runner +3 -0
  74. data/script/server +3 -0
  75. data/spec/controllers/trackable_actions_controller_spec.rb +5 -0
  76. data/spec/controllers/trackable_sessions_controller_spec.rb +5 -0
  77. data/spec/custom_matchers.rb +23 -0
  78. data/spec/helpers/application_helper_spec.rb +57 -0
  79. data/spec/lib/content_report_spec.rb +37 -0
  80. data/spec/lib/intersite_traffic_report_spec.rb +51 -0
  81. data/spec/lib/leads_report_spec.rb +46 -0
  82. data/spec/lib/session_report_spec.rb +107 -0
  83. data/spec/lib/stat_report_spec.rb +106 -0
  84. data/spec/models/trackable_action_spec.rb +42 -0
  85. data/spec/models/trackable_session_spec.rb +154 -0
  86. data/spec/rcov.opts +4 -0
  87. data/spec/schema.rb +34 -0
  88. data/spec/spec.opts +4 -0
  89. data/spec/spec_helper.rb +32 -0
  90. metadata +155 -0
@@ -0,0 +1,736 @@
1
+ /* @group Normalization */
2
+
3
+ body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, p, blockquote, th, td {
4
+ margin: 0;
5
+ padding: 0;
6
+ }
7
+
8
+ h1, h2, h3, h4, h5, h6 {
9
+ font-size: 100%;
10
+ margin: .67em 0;
11
+ }
12
+
13
+ ol, ul {
14
+ list-style: none;
15
+ margin-top: 1em;
16
+ }
17
+
18
+ ol li, ul li {
19
+ font-size: .9em;
20
+ margin-bottom: 1em;
21
+ }
22
+
23
+ ol.numbered {
24
+ list-style-type: decimal;
25
+ margin-left: 1.5em;
26
+ }
27
+
28
+ address, caption, cite, code, dfn, em, strong, th, var {
29
+ font-style: normal;
30
+ font-weight: normal;
31
+ }
32
+
33
+ table {
34
+ border-collapse: collapse;
35
+ border-spacing: 0;
36
+ }
37
+
38
+ table td {
39
+ vertical-align: top;
40
+ padding: .5em;
41
+ }
42
+
43
+ fieldset, img {
44
+ border: 0;
45
+ }
46
+
47
+ caption, th {
48
+ text-align: left;
49
+ }
50
+
51
+ q:before, q:after {
52
+ content: '';
53
+ }
54
+
55
+
56
+ /* @end */
57
+
58
+ /* @group Layout */
59
+
60
+ html {
61
+ }
62
+
63
+ body {
64
+ position: relative;
65
+ width: auto;
66
+ margin: 0em 1em 1em 1em;
67
+ background-color: #ffffff;
68
+ }
69
+
70
+ /* @end */
71
+
72
+ /* @group General Typography */
73
+
74
+ .button {
75
+ color: #ffffff !important;
76
+ text-decoration: none;
77
+ background-color: #6f637b;
78
+ font-size: .8em;
79
+ font-weight: normal !important;
80
+ margin: 2em 1.5em 1.5em 0em;
81
+ border: 1px solid #666666;
82
+ padding: .5em;
83
+ }
84
+
85
+ a:link {
86
+ color: #6f637b;
87
+ }
88
+
89
+ a:hover {
90
+ color: #6f637b;
91
+ }
92
+
93
+ a:active {
94
+ color: #6f637b;
95
+ }
96
+
97
+ a:visited {
98
+ color: #6f637b;
99
+ }
100
+
101
+ .align_left {
102
+ text-align: left !important;
103
+ }
104
+
105
+ .align_right {
106
+ text-align: right !important;
107
+ }
108
+
109
+ body {
110
+ font-family: Verdana, Arial, Sans-Serif;
111
+ font-size: .8em;
112
+ text-align: left;
113
+ }
114
+
115
+ h1 {
116
+ font-size: 1.5em;
117
+ font-weight: bold;
118
+ padding: 0em;
119
+ color: #ffffff;
120
+ margin: 0em 0em 1em 0em;
121
+ padding: .5em;
122
+ border: 1px solid #000000;
123
+ background-color: #222222;
124
+ }
125
+
126
+ h2 {
127
+ color: #ffffff;
128
+ font-weight: bold;
129
+ font-size: 1.1em;
130
+ margin: 1em 0em 1em 0em;
131
+ padding: .25em .5em;
132
+ border: 1px solid #444444;
133
+ background-color: #444444;
134
+ }
135
+
136
+ h2 a:link {
137
+ color: #333333;
138
+ }
139
+
140
+ h2 a:hover {
141
+ color: #333333;
142
+ }
143
+
144
+ h2 a:active {
145
+ color: #333333;
146
+ }
147
+
148
+ h2 a:visited {
149
+ color: #333333;
150
+ }
151
+
152
+ h3 {
153
+ color: #333333;
154
+ font-weight: bold;
155
+ font-size: 1em;
156
+ margin: 1.5em 0em .5em 0em;
157
+ }
158
+
159
+ p {
160
+ margin-bottom: 1.5em;
161
+ }
162
+
163
+
164
+ dt {
165
+ font-weight: bold;
166
+ margin: .5em 0em .5em 1em;
167
+ }
168
+
169
+ dd {
170
+ display: block;
171
+ margin: .5em 0em .5em 1em;
172
+ }
173
+
174
+ em {
175
+ font-weight: bold;
176
+ }
177
+
178
+ .indented {
179
+ margin-left: 2em;
180
+ }
181
+
182
+ td.indented {
183
+ padding-left: 2em !important;
184
+ }
185
+
186
+ ul.indented li {
187
+ margin-left: 1em;
188
+ }
189
+
190
+ ul.bulleted {
191
+ list-style-type: bullet;
192
+ }
193
+
194
+ .inactive {
195
+ color: #aaaaaa;
196
+ font-style: italic;
197
+ }
198
+
199
+ .inactive a:link, .inactive a:hover, .inactive a:visited {
200
+ color: #aaaaaa !important;
201
+ font-style: italic;
202
+ text-decoration: none;
203
+ }
204
+
205
+ pre {
206
+ font-family: Verdana, Arial, Sans-Serif;
207
+ font-size: .9em;
208
+ text-align: left;
209
+ }
210
+
211
+ .two_column{
212
+ float: left;
213
+ width: 40%;
214
+ margin-right: 1em;
215
+ }
216
+
217
+ .three_column{
218
+ float: left;
219
+ width: 30%;
220
+ margin-right: 1em;
221
+ }
222
+
223
+ .four_column{
224
+ float: left;
225
+ width: 20%;
226
+ margin-right: 1em;
227
+ }
228
+
229
+ div.column_left {
230
+ float: left;
231
+ width: 350px;
232
+ margin-right: 5%;
233
+ }
234
+
235
+ div.column_right {
236
+ float: left;
237
+ width: 400px;
238
+ }
239
+
240
+ /* @end */
241
+
242
+ /* @group Component Typography */
243
+
244
+ .graph {
245
+ border: 1px solid #999999;
246
+ }
247
+
248
+ p.footer {
249
+ border-top: 1px solid #999999;
250
+ font-size: .8em;
251
+ line-height: 150%;
252
+ padding: 1em 0em 1em 0em;
253
+ margin-top: 3em;
254
+ margin-bottom: 3em;
255
+ }
256
+
257
+ p.footer a:link {
258
+ color: #444444;
259
+ background: none;
260
+ border: none;
261
+ padding: 0em;
262
+ text-transform: none;
263
+ text-decoration: underline;
264
+ }
265
+
266
+ p.footer a:visited {
267
+ color: #444444;
268
+ }
269
+
270
+ table.results {
271
+ width: 100%;
272
+ margin-top: 0px;
273
+ margin-bottom: .5em;
274
+ padding: 0px;
275
+ border-collapse: collapse;
276
+ border: 1px solid #888888;
277
+ }
278
+
279
+ table.results thead tr {
280
+ border: 1px solid #888888;
281
+ }
282
+
283
+ table.results tr.odd {
284
+ background-color: #eeeeee;
285
+ }
286
+
287
+ table.results tr.even {
288
+ background-color: #ffffff;
289
+ }
290
+
291
+ table.results tfoot tr {
292
+ border: 1px solid #888888;
293
+ }
294
+
295
+ table.results th {
296
+ vertical-align: middle;
297
+ text-align: left;
298
+ font-size: .7em;
299
+ background-color: #888888;
300
+ color: #ffffff;
301
+ padding: 3px;
302
+ margin: 0px;
303
+ text-transform: uppercase;
304
+ }
305
+
306
+ table.results th a:link, table.results th a:visited {
307
+ text-decoration: none !important;
308
+ color: #ffffff;
309
+ }
310
+
311
+ table.results th a:hover {
312
+ text-decoration: underline !important;
313
+ color: #ffffff;
314
+ }
315
+
316
+ table th div.sort_link {
317
+ padding-bottom: 1em;
318
+ }
319
+
320
+ table tr th div.sort_link.sort_desc {
321
+ background: url(../images/layout/arrow_desc.png) no-repeat right bottom;
322
+ }
323
+
324
+ table tr th div.sort_link.sort_asc {
325
+ background: url(../images/layout/arrow_asc.png) no-repeat right bottom;
326
+ }
327
+
328
+ table.results tfoot td {
329
+ text-align: left;
330
+ font-size: .7em;
331
+ background-color: #888888;
332
+ color: #ffffff;
333
+ padding: 3px;
334
+ margin: 0px;
335
+ text-transform: uppercase;
336
+ }
337
+
338
+ table.results tfoot td a {
339
+ color: #ffffff !important;
340
+ }
341
+
342
+ table.results td {
343
+ text-align: left;
344
+ font-size: .75em;
345
+ padding: 6px 6px 6px 6px;
346
+ margin: 0px;
347
+ vertical-align: top;
348
+ }
349
+
350
+ /* @end */
351
+
352
+
353
+ /* @group Forms */
354
+
355
+ .button {
356
+ display: block;
357
+ float: left;
358
+ color: #ffffff;
359
+ text-transform: uppercase;
360
+ font-size: .8em;
361
+ font-weight: normal !important;
362
+ margin: 2em 1.5em 1.5em 0em;
363
+ border: 1px solid #666666;
364
+ padding: .5em;
365
+ cursor: pointer;
366
+ background-color: #6f637b;
367
+ text-decoration: none !important;
368
+ min-width: 5em;
369
+ text-align: center;
370
+ }
371
+
372
+ .faux_field {
373
+ display: block;
374
+ color: #666666;
375
+ width: 1em;
376
+ padding: .5em;
377
+ border: 1px solid #cccccc;
378
+ background-color: #ffffff;
379
+ width: 21.5em;
380
+ min-height: 1em;
381
+ margin: .25em 0em 1em 0em;
382
+ font-size: .8em;
383
+ text-align: left;
384
+ overflow: auto;
385
+ }
386
+
387
+ div.fieldWithErrors input {
388
+ background: #ffdddd !important;
389
+ color: #ff0000;
390
+ }
391
+
392
+ .form_container {
393
+ background-color: #eeeeee;
394
+ padding: 1em;
395
+ border: 1px solid #999999;
396
+ margin-top: 1.5em;
397
+ }
398
+
399
+ fieldset {
400
+ margin: .5em 0em .5em 0em;
401
+ }
402
+
403
+ fieldset.inline_label {
404
+ margin-bottom: 1.5em;
405
+ }
406
+
407
+ fieldset p {
408
+ color: #333333;
409
+ }
410
+
411
+ .form_column {
412
+ float: left;
413
+ width: 45%;
414
+ margin-right: 5%;
415
+ }
416
+
417
+ .inline_help p {
418
+ font-size: 9px;
419
+ color: #666666;
420
+ width: 275px;
421
+ }
422
+
423
+ input[type="text"] {
424
+ color: #666666;
425
+ margin: 0em 0em 1em 0em;
426
+ padding: 3px;
427
+ width: 23.75em;
428
+ background: #ffffff url(/images/layout/text_field_bg.jpg) repeat-x;
429
+ height: auto;
430
+ }
431
+
432
+ input[type="text"].short {
433
+ width: 3em;
434
+ }
435
+
436
+ input[type="password"] {
437
+ color: #666666;
438
+ margin: 0em 0em 1em 0em;
439
+ padding: 3px;
440
+ width: 23.75em;
441
+ background: #ffffff url(/images/layout/text_field_bg.jpg) repeat-x;
442
+ height: auto;
443
+
444
+ }
445
+
446
+ input[type="radio"] {
447
+ margin: .5em;
448
+ }
449
+
450
+ textarea {
451
+ background: #ffffff url(/images/layout/text_field_bg.jpg) repeat-x;
452
+ font-size: 1em;
453
+ }
454
+
455
+ legend {
456
+ padding: .5em;
457
+ background-color: #444444;
458
+ color: #ffffff;
459
+ margin-left: -.95em;
460
+ font-weight: bold;
461
+ font-size: 1.1em;
462
+ padding-left: 1em;
463
+ padding-right: 1.75em;
464
+ }
465
+
466
+ .faux_legend .show_link {
467
+ float: right;
468
+ margin-top: 0px;
469
+ margin-right: 25px;
470
+ }
471
+
472
+ .faux_legend .hide_link {
473
+ float: right;
474
+ margin-top: 0px;
475
+ margin-right: 25px;
476
+ }
477
+
478
+ label {
479
+ display: block;
480
+ font-weight: bold;
481
+ color: #333333;
482
+ margin: 0em 0em -1em 0em;
483
+ font-size: .8em;
484
+ }
485
+
486
+ label.inline {
487
+ display: inline;
488
+ margin-left: .5em;
489
+ font-size: .8em;
490
+ font-weight: normal;
491
+ }
492
+
493
+ label span.instructions {
494
+ font-weight: normal;
495
+ display: block;
496
+ }
497
+
498
+ select {
499
+ color: #666666;
500
+ margin: 0em 0em 1em 0em;
501
+ }
502
+
503
+ textarea {
504
+ color: #666666;
505
+ padding: .5em;
506
+ margin: 0em 0em 1em 0em;
507
+ height: 10em;
508
+ width: 23.75em;
509
+ font-family: Verdana, Arial, Sans-Serif;
510
+ color: #666666;
511
+ }
512
+
513
+ textarea.long {
514
+ height: 25em;
515
+ }
516
+
517
+ textarea.wide {
518
+ width: 70em;
519
+ }
520
+
521
+ /* @end */
522
+
523
+ /* @group Tables */
524
+
525
+ tr.odd {
526
+ background-color: #dddddd;
527
+ }
528
+
529
+ table.results {
530
+ width: 100%;
531
+ margin-top: 1em;
532
+ margin-bottom: 20px;
533
+ padding: 0px;
534
+ border-collapse: collapse;
535
+ border: 1px solid #888888;
536
+ }
537
+
538
+ table.results thead tr {
539
+ border: 1px solid #888888;
540
+ }
541
+
542
+ table.results tr.even {
543
+ background-color: #ffffff;
544
+ }
545
+
546
+ table.results tfoot tr {
547
+ border: 1px solid #888888;
548
+ }
549
+
550
+ table.results th {
551
+ vertical-align: middle;
552
+ text-align: left;
553
+ font-size: .75em;
554
+ background-color: #888888;
555
+ color: #ffffff;
556
+ padding: 1em .5em 1em .5em;
557
+ margin: 0px;
558
+ text-transform: uppercase;
559
+ }
560
+
561
+ table.results tfoot td {
562
+ text-align: left;
563
+ font-size: .7em;
564
+ background-color: #888888;
565
+ color: #ffffff;
566
+ padding: 3px;
567
+ margin: 0px;
568
+ text-transform: uppercase;
569
+ }
570
+
571
+ table.results tfoot td a {
572
+ color: #ffffff !important;
573
+ }
574
+
575
+ table.results td {
576
+ text-align: left;
577
+ font-size: .9em !important;
578
+ padding: 6px 6px 6px 6px;
579
+ height: auto !important;
580
+ margin: 0px;
581
+ vertical-align: top;
582
+ }
583
+
584
+ table.results td.crud_links {
585
+ text-align: right;
586
+ }
587
+
588
+ table.standard {
589
+ width: 100%;
590
+ text-align: left;
591
+ margin-top: 1em;
592
+ margin-bottom: 20px;
593
+ border: 1px solid #999999;
594
+ }
595
+
596
+ table.standard th {
597
+ text-align: left;
598
+ border: 1px solid #666666;
599
+ background-color: #666666;
600
+ color: #ffffff;
601
+ text-transform: uppercase;
602
+ font-size: .8em;
603
+ padding: 1em .5em 1em .5em;
604
+ }
605
+
606
+ table.standard th a {
607
+ text-decoration: none !important;
608
+ }
609
+
610
+ table.standard th a.arrow-desc:after{
611
+ content: "\25BC";
612
+ margin-left: 1em;
613
+ }
614
+
615
+ table.standard th a.arrow-asc:after {
616
+ content: "\25B2";
617
+ margin-left: 1em;
618
+ }
619
+
620
+ table.standard td.crud_links {
621
+ text-align: right;
622
+ }
623
+
624
+ table.standard td.nowrap {
625
+ white-space: nowrap;
626
+ }
627
+
628
+ table.standard tr.muted th {
629
+ border: 1px solid #999999;
630
+ background-color: #999999;
631
+ }
632
+
633
+ table.standard tr.summary {
634
+ background-color: #cccccc;
635
+ border-top: 1px solid #999999;
636
+ }
637
+
638
+ table.standard tr.odd {
639
+ background-color: #ffffff;
640
+ }
641
+
642
+ table.standard tr.even {
643
+ background-color: #dddddd;
644
+ }
645
+
646
+ table.standard tr:hover {
647
+ background-color: #aaaaaa;
648
+ }
649
+
650
+ table.standard td {
651
+ padding: .5em;
652
+ text-align: left;
653
+ font-size: .9em;
654
+ }
655
+
656
+ table.standard td span.emphasis {
657
+ font-weight: bold;
658
+ }
659
+
660
+ table.standard td.nowrap {
661
+ white-space: nowrap;
662
+ }
663
+
664
+ /* @end */
665
+
666
+ /* @group Pagination */
667
+
668
+ .pagination {
669
+ font-size: 10px;
670
+ padding: 3px;
671
+ margin: 10px;
672
+ text-align: right;
673
+ white-space: nowrap;
674
+ }
675
+
676
+ .pagination_label {
677
+ float: left;
678
+ width: 30%;
679
+ font-size: 10px;
680
+ padding-top: 1em;
681
+ }
682
+
683
+ .pagination_controls {
684
+ float: right;
685
+ width: 60%;
686
+ }
687
+
688
+ .pagination a {
689
+ padding: 2px 5px 2px 5px;
690
+ margin: 2px;
691
+ border: 1px solid #999999;
692
+ color: #666666;
693
+ }
694
+
695
+ .pagination a:hover, .pagination a:active {
696
+ border: 1px solid #999999;
697
+ background-color: #eeeeee;
698
+ color: #000;
699
+ }
700
+
701
+ .pagination span.current {
702
+ padding: 2px 5px 2px 5px;
703
+ margin: 2px;
704
+ border: 1px solid #999999;
705
+ font-weight: bold;
706
+ background-color: #eeeeee;
707
+ color: #000000;
708
+ }
709
+
710
+ .pagination span.disabled {
711
+ padding: 2px 5px 2px 5px;
712
+ margin: 2px;
713
+ border: 1px solid #999999;
714
+ color: #cccccc;
715
+ }
716
+
717
+ /* @end */
718
+
719
+ /* @group Workarounds */
720
+
721
+ .clearfix:after {
722
+ content: ".";
723
+ display: block;
724
+ height: 0;
725
+ clear: both;
726
+ visibility: hidden;
727
+ }
728
+
729
+ /* Hides from IE-mac \*/
730
+ * html .clearfix {height: 1%;}
731
+ /* End hide from IE-mac */
732
+
733
+ #preload { height: 0; overflow: hidden; }
734
+
735
+ /* @end */
736
+
data/script/about ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../config/boot', __FILE__)
3
+ $LOAD_PATH.unshift "#{RAILTIES_PATH}/builtin/rails_info"
4
+ require 'commands/about'
data/script/console ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../config/boot', __FILE__)
3
+ require 'commands/console'
data/script/dbconsole ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../config/boot', __FILE__)
3
+ require 'commands/dbconsole'