Module: Elastomer::Client::RestApiSpec

Defined in:
lib/elastomer/client/rest_api_spec.rb,
lib/elastomer/client/rest_api_spec/api_spec.rb,
lib/elastomer/client/rest_api_spec/rest_api.rb,
lib/elastomer/client/rest_api_spec/api_spec_v2_3.rb,
lib/elastomer/client/rest_api_spec/api_spec_v2_4.rb,
lib/elastomer/client/rest_api_spec/api_spec_v5_6.rb

Overview

Generated REST API spec file - DO NOT EDIT! Date: 2018-01-10 ES version: 5.6

Defined Under Namespace

Classes: ApiSpec, ApiSpecV2_3, ApiSpecV2_4, ApiSpecV5_6, RestApi

Class Method Summary collapse

Class Method Details

.api_spec(version) ⇒ Object

Returns an ApiSpec instance for the given Elasticsearcion version. This method will load the ApiSpec version class if it has not already been defined. This prevents bloat by only loading the version specs that are needed.

Because of this lazy loading, this method is not thread safe.

version - the Elasticsearch version String

Returns the requested ApiSpec version if available



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

def self.api_spec(version)
  classname = "ApiSpecV#{to_class_version(version)}"
  load_api_spec(version) if !self.const_defined? classname
  self.const_get(classname).new
end

.load_api_spec(version) ⇒ Object

Internal: Load the specific ApiSpec version class for the given version.



25
26
27
28
29
30
31
32
# File 'lib/elastomer/client/rest_api_spec.rb', line 25

def self.load_api_spec(version)
  path = File.expand_path("../rest_api_spec/api_spec_v#{to_class_version(version)}.rb", __FILE__)
  if File.exist? path
    load path
  else
    raise RuntimeError, "Unsupported REST API spec version: #{version}"
  end
end

.to_class_version(version) ⇒ Object

Internal: Convert a dotted version String into an underscore format suitable for use in Ruby class names.



36
37
38
# File 'lib/elastomer/client/rest_api_spec.rb', line 36

def self.to_class_version(version)
  version.to_s.split(".").slice(0,2).join("_")
end