Class: ElastomerClient::Client::Template

Inherits:
Object
  • Object
show all
Defined in:
lib/elastomer_client/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 - ElastomerClient::Client used for HTTP requests to the server name - The name of the template as a String



20
21
22
23
# File 'lib/elastomer_client/client/template.rb', line 20

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

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



25
26
27
# File 'lib/elastomer_client/client/template.rb', line 25

def client
  @client
end

#nameObject (readonly)

Returns the value of attribute name.



25
26
27
# File 'lib/elastomer_client/client/template.rb', line 25

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



52
53
54
55
# File 'lib/elastomer_client/client/template.rb', line 52

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.



82
83
84
# File 'lib/elastomer_client/client/template.rb', line 82

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



63
64
65
66
# File 'lib/elastomer_client/client/template.rb', line 63

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)


28
29
30
31
# File 'lib/elastomer_client/client/template.rb', line 28

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



40
41
42
43
# File 'lib/elastomer_client/client/template.rb', line 40

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.



75
76
77
78
79
# File 'lib/elastomer_client/client/template.rb', line 75

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