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