Module: Zena::Use::Fulltext::ModelMethods

Included in:
Node
Defined in:
lib/zena/use/fulltext.rb

Overview

VirtualClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



47
48
49
50
# File 'lib/zena/use/fulltext.rb', line 47

def self.included(base)
  base.before_validation :build_fulltext_indices
  base.alias_method_chain :rebuild_index_for_version, :fulltext
end

Instance Method Details

#rebuild_index_for_version_with_fulltext(version) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/zena/use/fulltext.rb', line 52

def rebuild_index_for_version_with_fulltext(version)
  # Call PropEval or other modules inserted before
  rebuild_index_for_version_without_fulltext(version)

  build_fulltext_indices(true)
  fields_to_set = []
  FULLTEXT_FIELDS.each do |idx_group|
    next unless version.changes[idx_group]
    fields_to_set << "#{idx_group}=#{Zena::Db.quote(version[idx_group])}"
  end

  unless fields_to_set.empty?
    Version.connection.execute "UPDATE versions SET #{fields_to_set.join(',')} WHERE id=#{version.id}"
  end
end