From 1b2230843ca7306f6e4c9bfbc07aca2a4b3b8bca Mon Sep 17 00:00:00 2001 From: Yoji Shidara Date: Thu, 19 Dec 2013 19:55:41 +0900 Subject: [PATCH] Use SUB_FORMATTERS map to iterate over formatters --- lib/droonga/searcher.rb | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/lib/droonga/searcher.rb b/lib/droonga/searcher.rb index 8cd6782..1a2f13a 100644 --- a/lib/droonga/searcher.rb +++ b/lib/droonga/searcher.rb @@ -325,6 +325,14 @@ def log_tag end class ResultFormatter + SUB_FORMATTERS = { + "count" => :format_count, + "attribtues" => :format_attributes, + "records" => :format_records, + "startTime" => :format_start_time, + "elapsedTime" => :format_elapsed_time + } + class << self def format(search_request, search_result) new(search_request, search_result).format @@ -339,24 +347,10 @@ def initialize(search_request, search_result) def format formatted_result = {} - if need_element_output?("count") - format_count(formatted_result) - end - - if need_element_output?("attributes") - format_attributes(formatted_result) - end - - if need_element_output?("records") - format_records(formatted_result) - end - - if need_element_output?("startTime") - format_start_time(formatted_result) - end - - if need_element_output?("elapsedTime") - format_elapsed_time(formatted_result) + SUB_FORMATTERS.each do |name, sub_formatter_method_name| + if need_element_output?(name) + method(sub_formatter_method_name).call(formatted_result) + end end formatted_result