Class: Elastomer::Client::Template

Inherits:
Object
  • Object
show all
Defined in:
lib/elastomer/client/template.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client, name) ⇒ Template

Create a new template client for making API requests that pertain to template management.

client - Elastomer::Client used for HTTP requests to the server name - The name of the template as a String



19
20
21
22
# File 'lib/elastomer/client/template.rb', line 19

def initialize( client, name )
  @client = client
  @name   = name
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



24
25
26
# File 'lib/elastomer/client/template.rb', line 24

def client
  @client
end

#nameObject (readonly)

Returns the value of attribute name.



24
25
26
# File 'lib/elastomer/client/template.rb', line 24

def name
  @name
end

Instance Method Details

#create(template, params = {}) ⇒ Object

Create the template on the cluster. See www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html

template - The template as a Hash or a JSON encoded String params - Parameters Hash

Returns the response body as a Hash



51
52
53
54
# File 'lib/elastomer/client/template.rb', line 51

def create( template, params = {} )
  response = client.put "/_template/{template}", update_params(params, body: template, action: "template.create", rest_api: "indices.put_template")
  response.body
end

#defaultsObject

Internal: Returns a Hash containing default parameters.



81
82
83
# File 'lib/elastomer/client/template.rb', line 81

def defaults
  { template: name }
end

#delete(params = {}) ⇒ Object

Delete the template from the cluster. See www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html#delete

params - Parameters Hash

Returns the response body as a Hash



62
63
64
65
# File 'lib/elastomer/client/template.rb', line 62

def delete( params = {} )
  response = client.delete "/_template/{template}", update_params(params, action: "template.delete", rest_api: "indices.delete_template")
  response.body
end

#exists?(params = {}) ⇒ Boolean Also known as: exist?

Returns true if the template already exists on the cluster.

Returns:

  • (Boolean)


27
28
29
30
# File 'lib/elastomer/client/template.rb', line 27

def exists?( params = {} )
  response = client.head "/_template/{template}", update_params(params, action: "template.exists", rest_api: "indices.exists_template")
  response.success?
end

#get(params = {}) ⇒ Object

Get the template from the cluster. See www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html#getting

params - Parameters Hash

Returns the response body as a Hash



39
40
41
42
# File 'lib/elastomer/client/template.rb', line 39

def get( params = {} )
  response = client.get "/_template/{template}", update_params(params, action: "template.get", rest_api: "indices.get_template")
  response.body
end

#update_params(params, overrides = nil) ⇒ Object

Internal: Add default parameters to the ‘params` Hash and then apply `overrides` to the params if any are given.

params - Parameters Hash overrides - Optional parameter overrides as a Hash

Returns a new params Hash.



74
75
76
77
78
# File 'lib/elastomer/client/template.rb', line 74

def update_params( params, overrides = nil )
  h = defaults.update params
  h.update overrides unless overrides.nil?
  h
end