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