class Elasticsearch::Model::Extensions::Callback
Public Class Methods
new(config)
click to toggle source
@param [Configuration] config
# File lib/elasticsearch/model/extensions/callback.rb, line 8 def initialize(config) @config = config end
Public Instance Methods
config()
click to toggle source
# File lib/elasticsearch/model/extensions/callback.rb, line 12 def config @config end
log(message)
click to toggle source
# 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)
click to toggle source
# 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() { || ... }
click to toggle source
# 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