Class: Sunspot::Queue::SessionProxy
- Inherits:
-
Object
- Object
- Sunspot::Queue::SessionProxy
- Defined in:
- lib/sunspot/queue/session_proxy.rb
Instance Attribute Summary collapse
-
#backend ⇒ Object
Returns the value of attribute backend.
-
#session ⇒ Object
readonly
Returns the value of attribute session.
Instance Method Summary collapse
-
#batch ⇒ Object
All of the following are are here to match API but don’t make sense to be implemented.
- #commit(*args) ⇒ Object
- #commit_if_delete_dirty(*args) ⇒ Object
- #commit_if_dirty(*args) ⇒ Object
- #config ⇒ Object
- #delete_dirty? ⇒ Boolean
- #dirty? ⇒ Boolean
- #index(*objects) ⇒ Object (also: #index!)
-
#initialize(session, backend) ⇒ SessionProxy
constructor
A new instance of SessionProxy.
- #more_like_this(*args, &block) ⇒ Object
- #new_more_like_this(*args, &block) ⇒ Object
-
#new_search(*args, &block) ⇒ Object
The following are all delegated to session.
- #remove(*objects, &block) ⇒ Object
- #remove!(*objects, &block) ⇒ Object
- #remove_all(*args) ⇒ Object
- #remove_all!(*args) ⇒ Object
-
#remove_by_id(klass, id) ⇒ Object
(also: #remove_by_id!)
Enqueues a removal job based on class and id.
- #search(*args, &block) ⇒ Object
Constructor Details
#initialize(session, backend) ⇒ SessionProxy
Returns a new instance of SessionProxy.
6 7 8 9 |
# File 'lib/sunspot/queue/session_proxy.rb', line 6 def initialize(session, backend) @session = session @backend = backend end |
Instance Attribute Details
#backend ⇒ Object
Returns the value of attribute backend.
4 5 6 |
# File 'lib/sunspot/queue/session_proxy.rb', line 4 def backend @backend end |
#session ⇒ Object (readonly)
Returns the value of attribute session.
3 4 5 |
# File 'lib/sunspot/queue/session_proxy.rb', line 3 def session @session end |
Instance Method Details
#batch ⇒ Object
All of the following are are here to match API but don’t make sense to be implemented
87 88 89 |
# File 'lib/sunspot/queue/session_proxy.rb', line 87 def batch yield if block_given? end |
#commit(*args) ⇒ Object
91 92 |
# File 'lib/sunspot/queue/session_proxy.rb', line 91 def commit(*args) end |
#commit_if_delete_dirty(*args) ⇒ Object
94 95 |
# File 'lib/sunspot/queue/session_proxy.rb', line 94 def commit_if_delete_dirty(*args) end |
#commit_if_dirty(*args) ⇒ Object
97 98 |
# File 'lib/sunspot/queue/session_proxy.rb', line 97 def commit_if_dirty(*args) end |
#config ⇒ Object
73 74 75 |
# File 'lib/sunspot/queue/session_proxy.rb', line 73 def config session.config end |
#delete_dirty? ⇒ Boolean
100 101 102 |
# File 'lib/sunspot/queue/session_proxy.rb', line 100 def delete_dirty? false end |
#dirty? ⇒ Boolean
104 105 106 |
# File 'lib/sunspot/queue/session_proxy.rb', line 104 def dirty? false end |
#index(*objects) ⇒ Object Also known as: index!
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/sunspot/queue/session_proxy.rb', line 11 def index(*objects) objects.flatten! if !objects.all?(&:persisted?) raise NotPersistedError.new("Cannot index records that have not been saved") end objects.each do |object| @backend.index(object.class.name, object.id) end end |
#more_like_this(*args, &block) ⇒ Object
69 70 71 |
# File 'lib/sunspot/queue/session_proxy.rb', line 69 def more_like_this(*args, &block) session.more_like_this(*args, &block) end |
#new_more_like_this(*args, &block) ⇒ Object
65 66 67 |
# File 'lib/sunspot/queue/session_proxy.rb', line 65 def new_more_like_this(*args, &block) session.new_more_like_this(*args, &block) end |
#new_search(*args, &block) ⇒ Object
The following are all delegated to session
57 58 59 |
# File 'lib/sunspot/queue/session_proxy.rb', line 57 def new_search(*args, &block) session.new_search(*args, &block) end |
#remove(*objects, &block) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/sunspot/queue/session_proxy.rb', line 24 def remove(*objects, &block) if block # Delete by query not supported by queue, so send to server session.remove(*objects, &block) else objects.flatten.each do |object| # Remove cannot remove an object from Solr if it doesn't have an id. # We're assuming if it doesn't have an id then it hasn't been # persisted and can safely be ignored since it shouldn't exist in the # search index. if object.id @backend.remove(object.class.name, object.id) end end end end |
#remove!(*objects, &block) ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'lib/sunspot/queue/session_proxy.rb', line 41 def remove!(*objects, &block) if block # Delete by query not supported by queue, so send to server session.remove!(*objects, &block) else remove(*objects) end end |
#remove_all(*args) ⇒ Object
77 78 79 |
# File 'lib/sunspot/queue/session_proxy.rb', line 77 def remove_all(*args) session.remove_all(*args) end |
#remove_all!(*args) ⇒ Object
81 82 83 |
# File 'lib/sunspot/queue/session_proxy.rb', line 81 def remove_all!(*args) session.remove_all(*args) end |
#remove_by_id(klass, id) ⇒ Object Also known as: remove_by_id!
Enqueues a removal job based on class and id.
51 52 53 |
# File 'lib/sunspot/queue/session_proxy.rb', line 51 def remove_by_id(klass, id) @backend.remove(klass.to_s, id) end |
#search(*args, &block) ⇒ Object
61 62 63 |
# File 'lib/sunspot/queue/session_proxy.rb', line 61 def search(*args, &block) session.search(*args, &block) end |