Class: Noiseless::DocumentManager
- Inherits:
-
Object
- Object
- Noiseless::DocumentManager
- Defined in:
- lib/noiseless/document_manager.rb
Instance Method Summary collapse
- #delete_document(refresh: false) ⇒ Object
- #document_exists? ⇒ Boolean
- #index_document(refresh: false) ⇒ Object
-
#initialize(model_instance, connection: nil) ⇒ DocumentManager
constructor
A new instance of DocumentManager.
- #update_document(refresh: false, detect_changes: true) ⇒ Object
Constructor Details
#initialize(model_instance, connection: nil) ⇒ DocumentManager
Returns a new instance of DocumentManager.
5 6 7 8 |
# File 'lib/noiseless/document_manager.rb', line 5 def initialize(model_instance, connection: nil) @model_instance = model_instance @connection = connection || model_instance.class.connection end |
Instance Method Details
#delete_document(refresh: false) ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'lib/noiseless/document_manager.rb', line 45 def delete_document(refresh: false, **) client = Noiseless.connections.client(@connection) client.delete_document( index: index_name, id: document_id, refresh: refresh, ** ) end |
#document_exists? ⇒ Boolean
55 56 57 58 59 60 61 |
# File 'lib/noiseless/document_manager.rb', line 55 def document_exists? client = Noiseless.connections.client(@connection) client.document_exists?( index: index_name, id: document_id ) end |
#index_document(refresh: false) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/noiseless/document_manager.rb', line 10 def index_document(refresh: false, **) document = build_document return false unless document client = Noiseless.connections.client(@connection) client.index_document( index: index_name, id: document_id, document: document, refresh: refresh, ** ) end |
#update_document(refresh: false, detect_changes: true) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/noiseless/document_manager.rb', line 24 def update_document(refresh: false, detect_changes: true, **) if detect_changes && supports_dirty_tracking? return false unless has_changes? changes = extract_changes return false if changes.empty? client = Noiseless.connections.client(@connection) client.update_document( index: index_name, id: document_id, changes: changes, refresh: refresh, ** ) else # Fall back to full document update index_document(refresh: refresh, **) end end |