Sha256: 0dfe50573c362657c0c0302fd69a3e42ab59922c1f064c2c0f1f1221e37cc8ff

Contents?: true

Size: 1.16 KB

Versions: 8

Compression:

Stored size: 1.16 KB

Contents

module Elastics
  module ActiveModel

    attr_reader :_version, :_id, :highlight
    alias_method :id, :_id

    def self.included(base)
      base.class_eval do
        @elastics ||= ClassProxy::Base.new(base)
        @elastics.extend(ClassProxy::ModelSyncer)
        @elastics.extend(ClassProxy::ModelIndexer).init
        @elastics.extend(ClassProxy::ActiveModel).init :params => {:version => true}
        def self.elastics; @elastics end
        elastics.synced = [self]

        include Scopes
        include ActiveAttr::Model

        extend  ::ActiveModel::Callbacks
        define_model_callbacks :create, :update, :save, :destroy

        include Storage::InstanceMethods
        extend  Storage::ClassMethods
        include Inspection
        extend  Timestamps
        extend  Attachment
      end
    end

    def elastics
      @elastics ||= InstanceProxy::ActiveModel.new(self)
    end

    def elastics_source
      attributes
    end

    def elastics_indexable?
      true
    end

    def elastics_action
      'index'
    end

    def method_missing(meth, *args, &block)
      raw_document.respond_to?(meth) ? raw_document.send(meth) : super
    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
elastics-models-1.3.3 lib/elastics/active_model.rb
elastics-models-1.3.2 lib/elastics/active_model.rb
elastics-models-1.3.1 lib/elastics/active_model.rb
elastics-models-1.3.0 lib/elastics/active_model.rb
elastics-models-1.2.1 lib/elastics/active_model.rb
elastics-models-1.2.0 lib/elastics/active_model.rb
elastics-models-1.1.11 lib/elastics/active_model.rb
elastics-models-1.1.10 lib/elastics/active_model.rb