module ARIndexer::Model::ClassMethods::InstanceMethods
Public Instance Methods
index_associations(cleanup = false)
click to toggle source
# File lib/ar_indexer/has_reverse_index.rb, line 66 def index_associations(cleanup = false) values_to_index = ar_indexer_get_indexable_values([:associations]) values_to_index.each do |field_name, value| Indexer.index_string(self.class.to_s.split('::').last, self.id, field_name, value, cleanup) end end
index_fields(cleanup = false)
click to toggle source
# File lib/ar_indexer/has_reverse_index.rb, line 58 def index_fields(cleanup = false) values_to_index = ar_indexer_get_indexable_values([:fields]) values_to_index.each do |field_name, value| Indexer.index_string(self.class.to_s.split('::').last, self.id, field_name, value, cleanup) end end
index_object(cleanup = false)
click to toggle source
# File lib/ar_indexer/has_reverse_index.rb, line 50 def index_object(cleanup = false) values_to_index = ar_indexer_get_indexable_values values_to_index.each do |field_name, value| Indexer.index_string(self.class.to_s.split('::').last, self.id, field_name, value, cleanup) end end
Private Instance Methods
ar_indexer_gather_column_values(columns)
click to toggle source
# File lib/ar_indexer/has_reverse_index.rb, line 98 def ar_indexer_gather_column_values(columns) column_values = {} columns.each do |column| value = self.read_attribute(column) if value.is_a?(String) column_values[column] = value unless value.empty? end end return column_values end
ar_indexer_get_indexable_values(index = [:fields, :associations])
click to toggle source
# File lib/ar_indexer/has_reverse_index.rb, line 76 def ar_indexer_get_indexable_values(index = [:fields, :associations]) values_to_index = {} if index.include?(:fields) ari_fields = self.class.ari_configuration[:fields].map{|f| f.to_s} indexed_columns = self.class.ari_configuration[:fields].empty? ? self.class.column_names : (self.class.column_names & ari_fields) values_to_index.merge!(ar_indexer_gather_column_values(indexed_columns)) end if index.include?(:associations) and !self.class.ari_configuration[:associations].empty? self.class.ari_configuration[:associations].each do |association_name, access_function| value = access_function.call(self) if value.is_a?(String) values_to_index[association_name.to_s] = value unless value.empty? end end end return values_to_index end
ar_indexer_on_create()
click to toggle source
# File lib/ar_indexer/has_reverse_index.rb, line 112 def ar_indexer_on_create to_index = self.class.ari_configuration[:index_on_create] if to_index == [] self.index_object(false) else self.index_fields(false) if to_index.include? :fields self.index_associations(false) if to_index.include? :associations end end
ar_indexer_on_destroy()
click to toggle source
# File lib/ar_indexer/has_reverse_index.rb, line 134 def ar_indexer_on_destroy Indexer.remove_index_id(self.class.to_s, self.id) end
ar_indexer_on_update()
click to toggle source
# File lib/ar_indexer/has_reverse_index.rb, line 123 def ar_indexer_on_update to_index = self.class.ari_configuration[:index_on_update] if to_index == [] self.index_object(true) else self.index_fields(true) if to_index.include? :fields self.index_associations(true) if to_index.include? :associations end end