null+****@clear*****
null+****@clear*****
2011年 6月 1日 (水) 12:03:35 JST
Kouhei Sutou 2011-06-01 03:03:35 +0000 (Wed, 01 Jun 2011)
New Revision: 8e48a9dda459eee0b85e90e7bbab8f525e8d345e
Log:
[query-log][analyzer] use Hash instead of OpenStruct.
Modified files:
tools/groonga-query-log-analyzer.rb
Modified: tools/groonga-query-log-analyzer.rb (+19 -10)
===================================================================
--- tools/groonga-query-log-analyzer.rb 2011-05-31 09:49:55 +0000 (41fb87c)
+++ tools/groonga-query-log-analyzer.rb 2011-06-01 03:03:35 +0000 (0d8d5c2)
@@ -1,7 +1,6 @@
#!/usr/bin/env ruby
require 'English'
-require 'ostruct'
require 'optparse'
require 'cgi'
require 'thread'
@@ -28,16 +27,15 @@ class GroongaQueryLogAnaylzer
end
reporter = ConsoleQueryLogReporter.new(parser.statistics)
- reporter.order =****@optio*****
- reporter.n_entries =****@optio*****_entries
+ reporter.apply_options(@options)
reporter.report
end
private
def setup_options
- @options = OpenStruct.new
- @options.n_entries = 10
- @options.order = "-elapsed"
+ @options = {}
+ @options[:n_entries] = 10
+ @options[:order] = "-elapsed"
@option_parser = OptionParser.new do |parser|
parser.banner += " LOG1 ..."
@@ -45,8 +43,8 @@ class GroongaQueryLogAnaylzer
parser.on("-n", "--n-entries=N",
Integer,
"Show top N entries",
- "(#{@options.n_entries})") do |n|
- @options.n_entries = n
+ "(#{@options[:n_entries]})") do |n|
+ @options[:n_entries] = n
end
available_orders = ["elapsed", "-elapsed", "start-time", "-start-time"]
@@ -54,8 +52,8 @@ class GroongaQueryLogAnaylzer
available_orders,
"Sort by ORDER",
"available values: [#{available_orders.join(', ')}]",
- "(#{@options.order})") do |order|
- @options.order = order
+ "(#{@options[:order]})") do |order|
+ @options[:order] = order
end
end
end
@@ -187,6 +185,12 @@ class GroongaQueryLogAnaylzer
end
end
+ class SizedStatistics < Array
+ def initialize(size)
+ @size = size
+ end
+ end
+
class QueryLogParser
attr_reader :statistics
def initialize
@@ -254,6 +258,11 @@ class GroongaQueryLogAnaylzer
@sorted_statistics = nil
end
+ def apply_options(options)
+ self.order = options[:order]
+ self.n_entries = options[:n_entries]
+ end
+
def order=(order)
return if @order == order
@order = order