Class: Sunspot::SessionProxy::DelayedJobSessionProxy

Inherits:
AbstractSessionProxy
  • Object
show all
Defined in:
lib/sunspot_plus/session_proxy/delayed_job_session_proxy.rb

Overview

Queue commits to delayed_job.

To configure, add this to an initializer:

Sunspot.session = DelayedJobSessionProxy.new(Sunspot.session)

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(session) ⇒ DelayedJobSessionProxy

Returns a new instance of DelayedJobSessionProxy.



54
55
56
57
# File 'lib/sunspot_plus/session_proxy/delayed_job_session_proxy.rb', line 54

def initialize(session)
  @config = session.config
  @session = session
end

Instance Attribute Details

#config=(value) ⇒ Object (writeonly)

Sets the attribute config

Parameters:

  • value

    the value to set the attribute config to.



15
16
17
# File 'lib/sunspot_plus/session_proxy/delayed_job_session_proxy.rb', line 15

def config=(value)
  @config = value
end

#sessionObject (readonly)

Returns the value of attribute session.



14
15
16
# File 'lib/sunspot_plus/session_proxy/delayed_job_session_proxy.rb', line 14

def session
  @session
end

Class Method Details

.rebuild_config(config) ⇒ Object



50
51
52
# File 'lib/sunspot_plus/session_proxy/delayed_job_session_proxy.rb', line 50

def self.rebuild_config(config)
  Sunspot::SessionProxy::DelayedJob::SafeConfiguration.new(config)
end

Instance Method Details

#batch(&block) ⇒ Object



21
22
23
# File 'lib/sunspot_plus/session_proxy/delayed_job_session_proxy.rb', line 21

def batch(&block)
  Delayed::Job.enqueue Sunspot::SessionProxy::DelayedJob::IndexingJob.new(self, :batch, &block)
end

#commitObject



25
26
27
# File 'lib/sunspot_plus/session_proxy/delayed_job_session_proxy.rb', line 25

def commit
  Delayed::Job.enqueue Sunspot::SessionProxy::DelayedJob::IndexingJob.new(self, :commit)
end

#commit_if_delete_dirtyObject

We can’t delegate to @session as commit needs to be sent to delayed job.



46
47
48
# File 'lib/sunspot_plus/session_proxy/delayed_job_session_proxy.rb', line 46

def commit_if_delete_dirty
  commit if @session.delete_dirty?
end

#commit_if_dirtyObject

We can’t delegate to @session as commit needs to be sent to delayed job.



39
40
41
# File 'lib/sunspot_plus/session_proxy/delayed_job_session_proxy.rb', line 39

def commit_if_dirty
  commit if @session.dirty?
end

#index!(*objects) ⇒ Object

We can’t delegate to @session as commit needs to be sent to delayed job.



32
33
34
35
# File 'lib/sunspot_plus/session_proxy/delayed_job_session_proxy.rb', line 32

def index!(*objects)
  @session.index(*objects)
  commit
end