[Groonga-commit] groonga/groonga [master] [query-log][analyzer] use Hash instead of OpenStruct.

アーカイブの一覧に戻る

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




Groonga-commit メーリングリストの案内
アーカイブの一覧に戻る