in elasticsearch-model/lib/elasticsearch/model/adapter.rb [43:157]
def from_class(klass)
Adapter.new(klass)
end; module_function :from_class
def adapters
Adapter.adapters
end; module_function :adapters
def register(name, condition)
Adapter.register(name, condition)
end; module_function :register
class Adapter
attr_reader :klass
def initialize(klass)
@klass = klass
end
def self.register(name, condition)
self.adapters[name] = condition
end
def self.adapters
@adapters ||= {}
end
def records_mixin
adapter.const_get(:Records)
end
def callbacks_mixin
adapter.const_get(:Callbacks)
end
def importing_mixin
adapter.const_get(:Importing)
end
def adapter
@adapter ||= begin
self.class.adapters.find( lambda {[]} ) { |name, condition| condition.call(klass) }.first \
|| Elasticsearch::Model::Adapter::Default
end
end
end