Sha256: 0ae956f8807a1c4c86b87b85f24fb6737edd615f55be652f0d7213dd5dcb623e
Contents?: true
Size: 2 KB
Versions: 1
Compression:
Stored size: 2 KB
Contents
module ActsAsCleo module InstanceMethods # callback hooks to keep cleo insync with data def create_cleo Cleo.create(self) end def update_cleo Cleo.update(self) end def remove_from_cleo cr = cleo_reference current_cleo_id = self.cleo_id cr.delete Cleo.delete(current_cleo_id) end def set_cleo_id cr = Cleo::Reference.find(:first, :conditions => ["record_type = ? and record_id = ?", record_type, self.id]) cr = Cleo::Reference.create(:record_type => record_type, :record_id => self.id) if cr.nil? end# #end callback hooks def cleo_id return nil if self.id.nil? cr = cleo_reference return nil if cr.nil? return cr.id end def to_cleo_result #take self and change it into a Cleo::Result and return cr = Cleo::Result.new cr.term = [] to_process = [] self.cleo_config[:terms].each do |term| to_process << self.send(term).to_s.downcase end cr.term = clean_terms_for_storage(to_process) set_cleo_id if self.cleo_id.nil? && !self.id.nil? cr.id = self.cleo_id cr.name = self.send(self.cleo_config[:name]).to_s.downcase cr.name = cr.term.first if cr.name.blank? score = self.send(self.cleo_config[:score]) if score.nil? cr.score = 0 elsif score.respond_to?("count") cr.score = score.count else cr.score = score end cr end alias :as_cleo :to_cleo_result def record_type self.cleo_config[:type] end def cleo_reference Cleo::Reference.find(:first, :conditions => ["record_type = ? and record_id = ?", record_type, self.id]) end private def clean_terms_for_storage(to_process) to_process = to_process.compact.reject(&:blank?) to_process.collect!{|i| i.split(/\s+/) }.flatten.compact.uniq to_process.reject{|i| drop_words.include?(i) } end def drop_words %w{and the this that no yes} end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
acts_as_cleo-2.4.3 | lib/acts_as_cleo/instance_methods.rb |