[Groonga-commit] droonga/droonga-engine at 22cf097 [master] Move logic to modify catalog params to CatalogGenerator

Back to archive index

YUKI Hiroshi null+****@clear*****
Sat Jun 28 00:20:56 JST 2014


YUKI Hiroshi	2014-06-28 00:20:56 +0900 (Sat, 28 Jun 2014)

  New Revision: 22cf0973602c4990f098c3d1d3916e53557d92ad
  https://github.com/droonga/droonga-engine/commit/22cf0973602c4990f098c3d1d3916e53557d92ad

  Message:
    Move logic to modify catalog params to CatalogGenerator

  Modified files:
    bin/droonga-engine-catalog-modify
    lib/droonga/catalog_generator.rb

  Modified: bin/droonga-engine-catalog-modify (+4 -17)
===================================================================
--- bin/droonga-engine-catalog-modify    2014-06-27 23:48:48 +0900 (9e74fdc)
+++ bin/droonga-engine-catalog-modify    2014-06-28 00:20:56 +0900 (8031253)
@@ -89,22 +89,9 @@ def load_source(path)
 end
 
 source_catalog = load_source(options.source_path)
-dataset_params = generator.catalog_to_params(source_catalog)
-datasets.each do |name, options|
-  dataset = dataset_params[name]
-
-  dataset[:hosts] = options[:hosts] if options[:hosts]
-
-  if options[:add_replica_hosts]
-    dataset[:hosts] += options[:add_replica_hosts]
-    dataset[:hosts].uniq!
-  end
-  if options[:remove_replica_hosts]
-    dataset[:hosts] -= options[:remove_replica_hosts]
-  end
-
-  generator.add_dataset(name, dataset)
-end
+source_params = generator.catalog_to_params(source_catalog)
+modified_params = Droonga::CatalogGenerator.update_params(source_params, datasets)
+modified_catalog = Droonga::CatalogGenerator.generate(modified_params)
 
 def open_output(path)
   if path == "-"
@@ -118,5 +105,5 @@ end
 
 catalog = generator.generate
 open_output(options.output_path) do |output|
-  output.puts(JSON.pretty_generate(catalog))
+  output.puts(JSON.pretty_generate(modified_catalog))
 end

  Modified: lib/droonga/catalog_generator.rb (+17 -0)
===================================================================
--- lib/droonga/catalog_generator.rb    2014-06-27 23:48:48 +0900 (671bb33)
+++ lib/droonga/catalog_generator.rb    2014-06-28 00:20:56 +0900 (28d6fd3)
@@ -28,6 +28,23 @@ module Droonga
       def generate(datasets_params)
         new(datasets_params).generate
       end
+
+      def update_params(base_params, modifications)
+        params = Marshal.load(Marshal.dump(base_params))
+        modifications.each do |name, modification|
+          dataset = params[name]
+          dataset[:hosts] = modification[:hosts] if modification[:hosts]
+
+            if modification[:add_replica_hosts]
+              dataset[:hosts] += modification[:add_replica_hosts]
+              dataset[:hosts].uniq!
+            end
+            if modification[:remove_replica_hosts]
+              dataset[:hosts] -= modification[:remove_replica_hosts]
+            end
+        end
+        params
+      end
     end
 
     def initialize(datasets_params=nil)
-------------- next part --------------
HTML����������������������������...
下载 



More information about the Groonga-commit mailing list
Back to archive index