class Elastic::Types::BaseType

Public Class Methods

definition() click to toggle source
# File lib/elastic/types/base_type.rb, line 13
def self.definition
  @definition ||= begin
    pre_definition.fields.each do |field|
      field.disable_mapping_inference if original_value_occluded? field.name
    end

    pre_definition.freeze
    pre_definition
  end
end
freeze_definition() click to toggle source
# File lib/elastic/types/base_type.rb, line 24
def self.freeze_definition
  definition # calling definition freezes it
end
new(_object) click to toggle source
Calls superclass method Elastic::Core::Serializer::new
# File lib/elastic/types/base_type.rb, line 28
def initialize(_object)
  super(self.class.definition, _object)
end
pre_definition() click to toggle source
# File lib/elastic/types/base_type.rb, line 7
def self.pre_definition
  @pre_definition ||= Elastic::Core::Definition.new.tap do |definition|
    definition.target = default_target unless default_target.nil?
  end
end
target=(_name_or_class) click to toggle source
# File lib/elastic/types/base_type.rb, line 3
def self.target=(_name_or_class)
  pre_definition.target = _name_or_class
end

Private Class Methods

default_target() click to toggle source
# File lib/elastic/types/base_type.rb, line 32
def self.default_target
  @default_target ||= begin
    target = to_s.match(/^(.*)Index$/)
    target ? target[1] : nil
  end
end