Class: Elasticsearch::Extensions::ANSI::ResponseBody

Inherits:
Hash
  • Object
show all
Defined in:
lib/elasticsearch/extensions/ansi/response.rb

Overview

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

Instance Method Summary collapse

Constructor Details

#initialize(body) ⇒ ResponseBody

Returns a new instance of ResponseBody.



25
26
27
# File 'lib/elasticsearch/extensions/ansi/response.rb', line 25

def initialize(body)
  super(body)
end

Instance Method Details

#to_ansi(options = {}) ⇒ Object

TODO:

Add all facets and handlers for remaining response parts / types

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

Examples:

Display formatted search results


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


44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/elasticsearch/extensions/ansi/response.rb', line 44

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