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 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