class Elasticsearch::Extensions::ANSI::ResponseBody

Wrapper for the Elasticsearch response body, which adds a {#to_ansi} method

Public Class Methods

new(body) click to toggle source
Calls superclass method
# File lib/elasticsearch/extensions/ansi/response.rb, line 8
def initialize(body)
  super(body)
end

Public Instance Methods

to_ansi(options={}) click to toggle source

Return a [colorized and formatted](en.wikipedia.org/wiki/ANSI_escape_code) representation of the Elasticsearch response for:

  • Search results (hits and highlights)

  • Facets (terms, statistical, histogram, date_histogram)

  • Analyze API output

  • Shard allocation

@example Display formatted search results

require 'elasticsearch/extensions/ansi'
puts Elasticsearch::Client.new.search.to_ansi

@todo Add all facets and handlers for remaining response parts / types

# File lib/elasticsearch/extensions/ansi/response.rb, line 27
def to_ansi(options={})
  output = Actions.public_methods.select do |m|
    m.to_s =~ /^display_/
  end.map do |m|
    Actions.send(m, self, options)
  end

  unless output.compact.empty?
    output.compact.join("\n")
  else
    self.respond_to?(:awesome_inspect) ? self.awesome_inspect : self.inspect
  end
end