Sha256: 7b7ac878f7fccdfd0a45681d4515f63ae0801a6c73a55505fbfe9803707ac45f

Contents?: true

Size: 1009 Bytes

Versions: 10

Compression:

Stored size: 1009 Bytes

Contents

module Elastics
  module ModelIndexer

    def self.included(base)
      base.class_eval do
        @elastics ||= ClassProxy::Base.new(base)
        @elastics.extend(ClassProxy::ModelSyncer)
        @elastics.extend(ClassProxy::ModelIndexer).init
        def self.elastics; @elastics end
        case
        when respond_to?(:find_in_batches)
          def self.elastics_in_batches(options={}, &block)
            find_in_batches(options, &block)
          end
        when defined?(Mongoid::Document) && include?(Mongoid::Document)
          def self.elastics_in_batches(options={}, &block)
            0.step(count, options[:batch_size]) do |offset|
              block.call limit(options[:batch_size]).skip(offset).to_a
            end
          end
        end
      end
    end

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

    def elastics_source
      attributes.reject {|k| k.to_s =~ /^_*id$/}
    end

    def elastics_indexable?
      true
    end

  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
elastics-models-1.1.9 lib/elastics/model_indexer.rb
elastics-models-1.1.8 lib/elastics/model_indexer.rb
elastics-models-1.1.7 lib/elastics/model_indexer.rb
elastics-models-1.1.6 lib/elastics/model_indexer.rb
elastics-models-1.1.5 lib/elastics/model_indexer.rb
elastics-models-1.1.4 lib/elastics/model_indexer.rb
elastics-models-1.1.3 lib/elastics/model_indexer.rb
elastics-models-1.1.2 lib/elastics/model_indexer.rb
elastics-models-1.1.1 lib/elastics/model_indexer.rb
elastics-models-1.1.0 lib/elastics/model_indexer.rb