class Elasticsearch::API::Response::Renderers::HashRenderer
Public Instance Methods
recursive_render(node)
click to toggle source
# File lib/elasticsearch/api/response/renderers/hash_renderer.rb, line 11 def recursive_render(node) format_node(node) if node.details.any? end
render(tree)
click to toggle source
# File lib/elasticsearch/api/response/renderers/hash_renderer.rb, line 7 def render(tree) recursive_render(tree) end
Private Instance Methods
format_children(node, hash)
click to toggle source
# File lib/elasticsearch/api/response/renderers/hash_renderer.rb, line 26 def format_children(node, hash) node.children.map(&method(:format_node)).compact.tap do |children| remove_dup(children, hash) end end
format_node(node)
click to toggle source
# File lib/elasticsearch/api/response/renderers/hash_renderer.rb, line 17 def format_node(node) node.as_json.tap do |hash| if node.has_children? children = format_children(node, hash) hash[:children] = children if children.any? end end end
remove_dup(collection, target)
click to toggle source
# File lib/elasticsearch/api/response/renderers/hash_renderer.rb, line 32 def remove_dup(collection, target) collection.delete_if {|elm| elm == target } end