bind_log_analyzer 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,11 +16,12 @@ require "optparse"
16
16
  @db_port = nil
17
17
  @db_username = nil
18
18
  @db_password = nil
19
+ @check_uniq = false
19
20
 
20
21
  optparse = OptionParser.new do |opts|
21
22
  # Set a banner, displayed at the top
22
23
  # of the help screen.
23
- opts.banner = "Usage: ./#{File.basename(__FILE__)} (--file|-f FILENAME [--setup|-s] [--verbose|-v (1|2|3)] [--database|-d database_name] [--config|-c database_yaml_configurations] [--host|-H database_hostname] [--port|-p database_port] [--user|-u database_username] [--password|-p database_password] [-w|--webserver] | --help|-h)"
24
+ opts.banner = "Usage: ./#{File.basename(__FILE__)} (--file|-f FILENAME [--setup|-s] [--verbose|-v (1|2|3)] [--database|-d database_name] [--config|-c database_yaml_configurations] [--host|-H database_hostname] [--port|-p database_port] [--user|-u database_username] [--password|-p database_password] [-w|--webserver] [-u|--uniqueness] | --help|-h)"
24
25
 
25
26
  # This displays the help screen
26
27
  opts.on( '-h', '--help', 'Display this screen' ) do
@@ -28,14 +29,16 @@ optparse = OptionParser.new do |opts|
28
29
  exit
29
30
  end
30
31
 
31
- opts.on( '-v', '--verbose LEVEL', "Enables verbose output. Use level 1 for WARN, 2 for INFO and 3 for DEBUG" ) do |opt|
32
+ opts.on( '-v', '--verbose LEVEL', "Enables verbose output. Use level 1 for ERROR, 2 for WARN, 3 for INFO and 4 for DEBUG. If omitted will be user the FATAL level" ) do |opt|
32
33
  case
33
34
  when 1 === opt.to_i
34
35
  @log_level = 1
35
36
  when 2 === opt.to_i
36
37
  @log_level = 2
37
- when opt.to_i >= 3
38
+ when 3 === opt.to_i
38
39
  @log_level = 3
40
+ when opt.to_i >= 4
41
+ @log_level = 4
39
42
  end
40
43
  end
41
44
 
@@ -79,6 +82,10 @@ optparse = OptionParser.new do |opts|
79
82
  opts.on( '-p', '--password PASSWORD', 'The password of the user' ) do |opt|
80
83
  @db_password = opt
81
84
  end
85
+
86
+ opts.on( '-u', '--uniqueness', 'This param, used with -f|--file, checks if a record exists before creating it' ) do |opt|
87
+ @check_uniq = true
88
+ end
82
89
  end
83
90
 
84
91
  optparse.parse!
@@ -107,14 +114,15 @@ if @webserver
107
114
  #**********************************#
108
115
  EOF
109
116
  @log_level = 1 if @log_level == 0
110
- BindLogAnalyzer::Connector.establish_connection(@database_confs, @log_level)
117
+ logger = BindLogAnalyzer::LogUtils.set_log_level(@log_level)
118
+ BindLogAnalyzer::Connector.establish_connection(@database_confs, logger)
111
119
  if @webserver_port
112
120
  BindLogAnalyzer::WebServer.run!({ port: @webserver_port.to_i})
113
121
  else
114
122
  BindLogAnalyzer::WebServer.run!
115
123
  end
116
124
  elsif @filename
117
- base = BindLogAnalyzer::Base.new(@database_confs, @filename, @setup_database, @log_level)
125
+ base = BindLogAnalyzer::Base.new(@database_confs, @filename, @setup_database, @log_level, @check_uniq)
118
126
  base.analyze
119
127
  else
120
128
  puts optparse.banner
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.email = ["tommaso.visconti@gmail.com"]
10
10
  s.homepage = "https://github.com/tommyblue/Bind-Log-Analyzer"
11
11
  s.summary = %q{Log analysis and SQL storage for Bind DNS server}
12
- s.description = %q{BindLogAnalyzer analyzes a Bind query log file and stores it's data into a SQL database (ActiveRecord is used for this feature)}
12
+ s.description = %q{BindLogAnalyzer analyzes a Bind query log file and stores its data into a SQL database using ActiveRecord. It provides a fancy web interface to show some query stats and graphs.}
13
13
 
14
14
  s.rubyforge_project = "bind_log_analyzer"
15
15
 
@@ -84,7 +84,7 @@
84
84
 
85
85
 
86
86
  <dt class="r2">Includes:</dt>
87
- <dd class="r2"><span class='object_link'><a href="Connector.html" title="BindLogAnalyzer::Connector (module)">Connector</a></span></dd>
87
+ <dd class="r2"><span class='object_link'><a href="Connector.html" title="BindLogAnalyzer::Connector (module)">Connector</a></span>, <span class='object_link'><a href="LogUtils.html" title="BindLogAnalyzer::LogUtils (module)">LogUtils</a></span></dd>
88
88
 
89
89
 
90
90
 
@@ -179,7 +179,7 @@
179
179
  <li class="public ">
180
180
  <span class="summary_signature">
181
181
 
182
- <a href="#initialize-instance_method" title="#initialize (instance method)">- (Base) <strong>initialize</strong>(database_params = nil, logfile = nil, setup_database = false, log_level = 0) </a>
182
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (Base) <strong>initialize</strong>(database_params = nil, logfile = nil, setup_database = false, log_level = 0, check_uniq = false) </a>
183
183
 
184
184
 
185
185
 
@@ -288,7 +288,8 @@ setup of the database.</p>
288
288
 
289
289
 
290
290
  <span class="summary_desc"><div class='inline'>
291
- <p>Stores the parsed log line into the database.</p>
291
+ <p>Stores the parsed log line into the database and increments @stored_queries
292
+ if successful.</p>
292
293
  </div></span>
293
294
 
294
295
  </li>
@@ -306,14 +307,24 @@ setup of the database.</p>
306
307
 
307
308
 
308
309
  <h3 class="inherited">Methods included from <span class='object_link'><a href="Connector.html" title="BindLogAnalyzer::Connector (module)">Connector</a></span></h3>
309
- <p class="inherited"><span class='object_link'><a href="Connector.html#connect-class_method" title="BindLogAnalyzer::Connector.connect (method)">connect</a></span>, <span class='object_link'><a href="Connector.html#connected%3F-instance_method" title="BindLogAnalyzer::Connector#connected? (method)">#connected?</a></span>, <span class='object_link'><a href="Connector.html#establish_connection-class_method" title="BindLogAnalyzer::Connector.establish_connection (method)">establish_connection</a></span>, <span class='object_link'><a href="Connector.html#load_environment-instance_method" title="BindLogAnalyzer::Connector#load_environment (method)">#load_environment</a></span>, <span class='object_link'><a href="Connector.html#migrate_tables-instance_method" title="BindLogAnalyzer::Connector#migrate_tables (method)">#migrate_tables</a></span>, <span class='object_link'><a href="Connector.html#set_log_level-class_method" title="BindLogAnalyzer::Connector.set_log_level (method)">set_log_level</a></span>, <span class='object_link'><a href="Connector.html#setup_db-instance_method" title="BindLogAnalyzer::Connector#setup_db (method)">#setup_db</a></span>, <span class='object_link'><a href="Connector.html#setup_db_confs-class_method" title="BindLogAnalyzer::Connector.setup_db_confs (method)">setup_db_confs</a></span></p>
310
+ <p class="inherited"><span class='object_link'><a href="Connector.html#connect-class_method" title="BindLogAnalyzer::Connector.connect (method)">connect</a></span>, <span class='object_link'><a href="Connector.html#connected%3F-instance_method" title="BindLogAnalyzer::Connector#connected? (method)">#connected?</a></span>, <span class='object_link'><a href="Connector.html#establish_connection-class_method" title="BindLogAnalyzer::Connector.establish_connection (method)">establish_connection</a></span>, <span class='object_link'><a href="Connector.html#load_environment-instance_method" title="BindLogAnalyzer::Connector#load_environment (method)">#load_environment</a></span>, <span class='object_link'><a href="Connector.html#migrate_tables-instance_method" title="BindLogAnalyzer::Connector#migrate_tables (method)">#migrate_tables</a></span>, <span class='object_link'><a href="Connector.html#setup_db-instance_method" title="BindLogAnalyzer::Connector#setup_db (method)">#setup_db</a></span>, <span class='object_link'><a href="Connector.html#setup_db_confs-class_method" title="BindLogAnalyzer::Connector.setup_db_confs (method)">setup_db_confs</a></span></p>
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="LogUtils.html" title="BindLogAnalyzer::LogUtils (module)">LogUtils</a></span></h3>
320
+ <p class="inherited"><span class='object_link'><a href="LogUtils.html#set_log_level-class_method" title="BindLogAnalyzer::LogUtils.set_log_level (method)">set_log_level</a></span></p>
310
321
  <div id="constructor_details" class="method_details_list">
311
322
  <h2>Constructor Details</h2>
312
323
 
313
324
  <div class="method_details first">
314
325
  <p class="signature first" id="initialize-instance_method">
315
326
 
316
- - (<tt><span class='object_link'><a href="" title="BindLogAnalyzer::Base (class)">Base</a></span></tt>) <strong>initialize</strong>(database_params = nil, logfile = nil, setup_database = false, log_level = 0)
327
+ - (<tt><span class='object_link'><a href="" title="BindLogAnalyzer::Base (class)">Base</a></span></tt>) <strong>initialize</strong>(database_params = nil, logfile = nil, setup_database = false, log_level = 0, check_uniq = false)
317
328
 
318
329
 
319
330
 
@@ -399,6 +410,24 @@ informations</p>
399
410
  &mdash;
400
411
  <div class='inline'>
401
412
  <p>The level of the log requested by the user</p>
413
+ </div>
414
+
415
+ </li>
416
+
417
+ <li>
418
+
419
+ <span class='name'>check_uniq</span>
420
+
421
+
422
+ <span class='type'>(<tt>true</tt>, <tt>false</tt>)</span>
423
+
424
+
425
+ <em class="default">(defaults to: <tt>false</tt>)</em>
426
+
427
+
428
+ &mdash;
429
+ <div class='inline'>
430
+ <p>Checks if a record exists before creating it</p>
402
431
  </div>
403
432
 
404
433
  </li>
@@ -412,19 +441,27 @@ informations</p>
412
441
  <pre class="lines">
413
442
 
414
443
 
415
- 19
416
- 20
417
- 21
418
444
  22
419
- 23</pre>
445
+ 23
446
+ 24
447
+ 25
448
+ 26
449
+ 27
450
+ 28
451
+ 29
452
+ 30</pre>
420
453
  </td>
421
454
  <td>
422
- <pre class="code"><span class="info file"># File 'lib/bind_log_analyzer/base.rb', line 19</span>
455
+ <pre class="code"><span class="info file"># File 'lib/bind_log_analyzer/base.rb', line 22</span>
423
456
 
424
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_database_params'>database_params</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_logfile'>logfile</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_setup_database'>setup_database</span> <span class='op'>=</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='id identifier rubyid_log_level'>log_level</span> <span class='op'>=</span> <span class='int'>0</span><span class='rparen'>)</span>
457
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_database_params'>database_params</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_logfile'>logfile</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_setup_database'>setup_database</span> <span class='op'>=</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='id identifier rubyid_log_level'>log_level</span> <span class='op'>=</span> <span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_check_uniq'>check_uniq</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
425
458
  <span class='ivar'>@stored_queries</span> <span class='op'>=</span> <span class='int'>0</span>
459
+ <span class='ivar'>@check_uniq</span> <span class='op'>=</span> <span class='id identifier rubyid_check_uniq'>check_uniq</span>
460
+
461
+ <span class='ivar'>@log</span> <span class='op'>=</span> <span class='const'>BindLogAnalyzer</span><span class='op'>::</span><span class='const'>LogUtils</span><span class='period'>.</span><span class='id identifier rubyid_set_log_level'>set_log_level</span><span class='lparen'>(</span><span class='id identifier rubyid_log_level'>log_level</span><span class='rparen'>)</span>
462
+
426
463
  <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_logfile'>logfile</span> <span class='op'>=</span> <span class='id identifier rubyid_logfile'>logfile</span> <span class='kw'>if</span> <span class='id identifier rubyid_logfile'>logfile</span>
427
- <span class='id identifier rubyid_setup_db'>setup_db</span><span class='lparen'>(</span><span class='id identifier rubyid_database_params'>database_params</span><span class='comma'>,</span> <span class='id identifier rubyid_setup_database'>setup_database</span><span class='comma'>,</span> <span class='id identifier rubyid_log_level'>log_level</span><span class='rparen'>)</span>
464
+ <span class='id identifier rubyid_setup_db'>setup_db</span><span class='lparen'>(</span><span class='id identifier rubyid_database_params'>database_params</span><span class='comma'>,</span> <span class='id identifier rubyid_setup_database'>setup_database</span><span class='rparen'>)</span>
428
465
  <span class='kw'>end</span></pre>
429
466
  </td>
430
467
  </tr>
@@ -481,12 +518,12 @@ informations</p>
481
518
  <pre class="lines">
482
519
 
483
520
 
484
- 12
485
- 13
486
- 14</pre>
521
+ 14
522
+ 15
523
+ 16</pre>
487
524
  </td>
488
525
  <td>
489
- <pre class="code"><span class="info file"># File 'lib/bind_log_analyzer/base.rb', line 12</span>
526
+ <pre class="code"><span class="info file"># File 'lib/bind_log_analyzer/base.rb', line 14</span>
490
527
 
491
528
  <span class='kw'>def</span> <span class='id identifier rubyid_log_filename'>log_filename</span>
492
529
  <span class='ivar'>@log_filename</span>
@@ -546,31 +583,35 @@ and passes wvery line to #parse_line and #store_query</p>
546
583
  <pre class="lines">
547
584
 
548
585
 
549
- 72
550
- 73
551
- 74
552
- 75
553
- 76
554
- 77
555
- 78
556
- 79
557
- 80
558
- 81
559
- 82
560
- 83
561
- 84
562
- 85</pre>
586
+ 98
587
+ 99
588
+ 100
589
+ 101
590
+ 102
591
+ 103
592
+ 104
593
+ 105
594
+ 106
595
+ 107
596
+ 108
597
+ 109
598
+ 110
599
+ 111
600
+ 112
601
+ 113</pre>
563
602
  </td>
564
603
  <td>
565
- <pre class="code"><span class="info file"># File 'lib/bind_log_analyzer/base.rb', line 72</span>
604
+ <pre class="code"><span class="info file"># File 'lib/bind_log_analyzer/base.rb', line 98</span>
566
605
 
567
606
  <span class='kw'>def</span> <span class='id identifier rubyid_analyze'>analyze</span>
568
607
  <span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='ivar'>@log_filename</span>
569
608
 
570
609
  <span class='id identifier rubyid_lines'>lines</span> <span class='op'>=</span> <span class='int'>0</span>
571
610
  <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='ivar'>@log_filename</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_line'>line</span><span class='op'>|</span>
611
+ <span class='ivar'>@log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Got line: \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_line'>line</span><span class='rbrace'>}</span><span class='tstring_content'>\&quot;</span><span class='tstring_end'>&quot;</span></span>
572
612
  <span class='id identifier rubyid_query'>query</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_parse_line'>parse_line</span><span class='lparen'>(</span><span class='id identifier rubyid_line'>line</span><span class='rparen'>)</span>
573
613
  <span class='kw'>if</span> <span class='id identifier rubyid_query'>query</span>
614
+ <span class='ivar'>@log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Storing line: \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_query'>query</span><span class='rbrace'>}</span><span class='tstring_content'>\&quot;</span><span class='tstring_end'>&quot;</span></span>
574
615
  <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_store_query'>store_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
575
616
  <span class='id identifier rubyid_lines'>lines</span> <span class='op'>+=</span> <span class='int'>1</span>
576
617
  <span class='kw'>end</span>
@@ -625,12 +666,12 @@ and passes wvery line to #parse_line and #store_query</p>
625
666
  <pre class="lines">
626
667
 
627
668
 
628
- 33
629
- 34
630
- 35</pre>
669
+ 44
670
+ 45
671
+ 46</pre>
631
672
  </td>
632
673
  <td>
633
- <pre class="code"><span class="info file"># File 'lib/bind_log_analyzer/base.rb', line 33</span>
674
+ <pre class="code"><span class="info file"># File 'lib/bind_log_analyzer/base.rb', line 44</span>
634
675
 
635
676
  <span class='kw'>def</span> <span class='id identifier rubyid_logfile'>logfile</span>
636
677
  <span class='ivar'>@log_filename</span>
@@ -684,15 +725,23 @@ and passes wvery line to #parse_line and #store_query</p>
684
725
  <pre class="lines">
685
726
 
686
727
 
687
- 27
688
- 28
689
- 29</pre>
728
+ 34
729
+ 35
730
+ 36
731
+ 37
732
+ 38
733
+ 39
734
+ 40</pre>
690
735
  </td>
691
736
  <td>
692
- <pre class="code"><span class="info file"># File 'lib/bind_log_analyzer/base.rb', line 27</span>
737
+ <pre class="code"><span class="info file"># File 'lib/bind_log_analyzer/base.rb', line 34</span>
693
738
 
694
739
  <span class='kw'>def</span> <span class='id identifier rubyid_logfile='>logfile=</span><span class='lparen'>(</span><span class='id identifier rubyid_logfile'>logfile</span><span class='rparen'>)</span>
695
- <span class='ivar'>@log_filename</span> <span class='op'>=</span> <span class='id identifier rubyid_logfile'>logfile</span> <span class='kw'>if</span> <span class='const'>FileTest</span><span class='period'>.</span><span class='id identifier rubyid_exists?'>exists?</span><span class='lparen'>(</span><span class='id identifier rubyid_logfile'>logfile</span><span class='rparen'>)</span>
740
+ <span class='kw'>if</span> <span class='const'>FileTest</span><span class='period'>.</span><span class='id identifier rubyid_exists?'>exists?</span><span class='lparen'>(</span><span class='id identifier rubyid_logfile'>logfile</span><span class='rparen'>)</span>
741
+ <span class='ivar'>@log_filename</span> <span class='op'>=</span> <span class='id identifier rubyid_logfile'>logfile</span>
742
+ <span class='kw'>else</span>
743
+ <span class='ivar'>@log</span><span class='period'>.</span><span class='id identifier rubyid_error'>error</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>The provided log file doesn't exist</span><span class='tstring_end'>&quot;</span></span>
744
+ <span class='kw'>end</span>
696
745
  <span class='kw'>end</span></pre>
697
746
  </td>
698
747
  </tr>
@@ -761,17 +810,6 @@ and passes wvery line to #parse_line and #store_query</p>
761
810
  <pre class="lines">
762
811
 
763
812
 
764
- 40
765
- 41
766
- 42
767
- 43
768
- 44
769
- 45
770
- 46
771
- 47
772
- 48
773
- 49
774
- 50
775
813
  51
776
814
  52
777
815
  53
@@ -781,10 +819,22 @@ and passes wvery line to #parse_line and #store_query</p>
781
819
  57
782
820
  58
783
821
  59
784
- 60</pre>
822
+ 60
823
+ 61
824
+ 62
825
+ 63
826
+ 64
827
+ 65
828
+ 66
829
+ 67
830
+ 68
831
+ 69
832
+ 70
833
+ 71
834
+ 72</pre>
785
835
  </td>
786
836
  <td>
787
- <pre class="code"><span class="info file"># File 'lib/bind_log_analyzer/base.rb', line 40</span>
837
+ <pre class="code"><span class="info file"># File 'lib/bind_log_analyzer/base.rb', line 51</span>
788
838
 
789
839
  <span class='kw'>def</span> <span class='id identifier rubyid_parse_line'>parse_line</span><span class='lparen'>(</span><span class='id identifier rubyid_line'>line</span><span class='rparen'>)</span>
790
840
  <span class='id identifier rubyid_query'>query</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
@@ -804,6 +854,7 @@ and passes wvery line to #parse_line and #store_query</p>
804
854
 
805
855
  <span class='id identifier rubyid_query'>query</span>
806
856
  <span class='kw'>else</span>
857
+ <span class='ivar'>@log</span><span class='period'>.</span><span class='id identifier rubyid_error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Can't parse the line: \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_line'>line</span><span class='rbrace'>}</span><span class='tstring_content'>\&quot;</span><span class='tstring_end'>&quot;</span></span>
807
858
  <span class='kw'>false</span>
808
859
  <span class='kw'>end</span>
809
860
  <span class='kw'>end</span></pre>
@@ -822,8 +873,9 @@ and passes wvery line to #parse_line and #store_query</p>
822
873
  </p><div class="docstring">
823
874
  <div class="discussion">
824
875
 
825
- <p>Stores the parsed log line into the database. Increments @stored_queries if
826
- successful</p>
876
+ <p>Stores the parsed log line into the database and increments @stored_queries
877
+ if successful. It checks the uniqueness of a record if the @check_uniq
878
+ flag is set</p>
827
879
 
828
880
 
829
881
  </div>
@@ -857,17 +909,43 @@ successful</p>
857
909
  <pre class="lines">
858
910
 
859
911
 
860
- 64
861
- 65
862
- 66
863
- 67</pre>
912
+ 77
913
+ 78
914
+ 79
915
+ 80
916
+ 81
917
+ 82
918
+ 83
919
+ 84
920
+ 85
921
+ 86
922
+ 87
923
+ 88
924
+ 89
925
+ 90
926
+ 91
927
+ 92
928
+ 93</pre>
864
929
  </td>
865
930
  <td>
866
- <pre class="code"><span class="info file"># File 'lib/bind_log_analyzer/base.rb', line 64</span>
931
+ <pre class="code"><span class="info file"># File 'lib/bind_log_analyzer/base.rb', line 77</span>
867
932
 
868
933
  <span class='kw'>def</span> <span class='id identifier rubyid_store_query'>store_query</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
869
- <span class='id identifier rubyid_log'>log</span> <span class='op'>=</span> <span class='const'>Log</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
870
- <span class='ivar'>@stored_queries</span> <span class='op'>+=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_save'>save</span>
934
+ <span class='kw'>if</span> <span class='ivar'>@check_uniq</span>
935
+ <span class='kw'>unless</span> <span class='const'>Log</span><span class='period'>.</span><span class='id identifier rubyid_where'>where</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
936
+ <span class='id identifier rubyid_log'>log</span> <span class='op'>=</span> <span class='const'>Log</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='symbol'>:date</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_query'>query</span><span class='lbracket'>[</span><span class='symbol'>:date</span><span class='rbracket'>]</span><span class='rparen'>)</span>
937
+ <span class='ivar'>@stored_queries</span> <span class='op'>+=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_save'>save</span>
938
+ <span class='kw'>else</span>
939
+ <span class='ivar'>@log</span><span class='period'>.</span><span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Skipping duplicate entry: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_query'>query</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
940
+ <span class='kw'>end</span>
941
+ <span class='kw'>else</span>
942
+ <span class='id identifier rubyid_log'>log</span> <span class='op'>=</span> <span class='const'>Log</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='rparen'>)</span>
943
+ <span class='kw'>if</span> <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_save'>save</span>
944
+ <span class='ivar'>@stored_queries</span> <span class='op'>+=</span> <span class='int'>1</span>
945
+ <span class='kw'>else</span>
946
+ <span class='ivar'>@log</span><span class='period'>.</span><span class='id identifier rubyid_error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error saving the log </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_query'>query</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
947
+ <span class='kw'>end</span>
948
+ <span class='kw'>end</span>
871
949
  <span class='kw'>end</span></pre>
872
950
  </td>
873
951
  </tr>
@@ -879,7 +957,7 @@ successful</p>
879
957
  </div>
880
958
 
881
959
  <div id="footer">
882
- Generated on Thu Apr 5 16:40:26 2012 by
960
+ Generated on Tue Apr 10 16:12:42 2012 by
883
961
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
884
962
  0.7.5 (ruby-1.9.3).
885
963
  </div>