Class: Elasticsearch::Model::Extensions::Callback
- Inherits:
-
Object
- Object
- Elasticsearch::Model::Extensions::Callback
show all
- Defined in:
- lib/elasticsearch/model/extensions/callback.rb
Instance Method Summary
collapse
Constructor Details
#initialize(config) ⇒ Callback
Returns a new instance of Callback.
8
9
10
|
# File 'lib/elasticsearch/model/extensions/callback.rb', line 8
def initialize(config)
@config = config
end
|
Instance Method Details
#config ⇒ Object
12
13
14
|
# File 'lib/elasticsearch/model/extensions/callback.rb', line 12
def config
@config
end
|
#log(message) ⇒ Object
39
40
41
42
43
44
45
|
# File 'lib/elasticsearch/model/extensions/callback.rb', line 39
def log(message)
if defined?(::Rails.logger.warn)
::Rails.logger.warn message
else
warn message
end
end
|
#update_for_records(*records) ⇒ Object
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/elasticsearch/model/extensions/callback.rb', line 28
def update_for_records(*records)
field_to_update = config.field_to_update
optionally_delayed = config.optionally_delayed
block = config.block
records.map(&:reload).map(&optionally_delayed).each do |t|
log "Indexing #{t.class} id=#{t.id} fields=#{[*field_to_update].join(', ')}"
block.call(t, [*field_to_update])
end
end
|
#with_error_logging ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/elasticsearch/model/extensions/callback.rb', line 16
def with_error_logging
begin
yield
rescue => e
log "An error occured while calling Elasticsearch::Model::Extensions::#{self.class.name}#after_commit"
log e.message
log e.backtrace.join("\n")
end
true
end
|