To edit pages or tickets please login with username/password: aaf/aaf

Changeset 23

Show
Ignore:
Timestamp:
04/03/06 15:39:46 (3 years ago)
Author:
kweibel
Message:

Edits to resolve unit test failures. Ticket #7 adressed

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/plugin/acts_as_ferret/lib/acts_as_ferret.rb

    r20 r23  
    176176              include FerretMixin::Acts::ARFerret::InstanceMethods 
    177177 
    178               before_update :ferret_before_update  
    179               after_create  :ferret_create 
    180               after_update  :ferret_update 
     178              before_create :ferret_before_create 
     179              before_update :ferret_before_update 
     180              after_create :ferret_create 
     181              after_update :ferret_update 
     182 
    181183              after_destroy :ferret_destroy       
    182                
    183184               
    184185              cattr_accessor :fields_for_ferret    
     
    404405      module InstanceMethods 
    405406        include Ferret          
    406         @fields_for_ferret_tainted = false 
     407        attr_reader :fields_for_ferret_tainted 
     408        @fields_for_ferret_tainted = true 
    407409         
    408410        # check to see if there are any changes relevant to the ferret index 
    409411        def ferret_before_update 
    410           res = true 
    411           current = self.class.find(self.id) 
    412           if fields_for_ferret && current 
     412          @fields_for_ferret_tainted = true 
     413          if self.id && fields_for_ferret 
     414            res = true 
     415            current = self.class.find(self.id) 
    413416            fields_for_ferret.each do |field| 
    414417              res = res && (self.send(field) == current.send(field)) 
    415418            end 
    416419            @fields_for_ferret_tainted = !res 
    417           else 
    418             @fields_for_ferret_tainted = true 
    419420          end 
    420421          logger.debug "fields_for_ferret_tainted(before_update): #{@fields_for_ferret_tainted}" 
    421422          true 
    422423        end 
     424        alias :ferret_before_create :ferret_before_update 
    423425         
    424426        # add to index 
    425427        def ferret_create 
     428          logger.debug "ferret_create/update: #{self.class.name} : #{self.id}" 
     429          self.class.ferret_index << self.to_doc if @fields_for_ferret_tainted 
    426430          logger.debug "fields_for_ferret_tainted(create): #{@fields_for_ferret_tainted}" 
    427           if @fields_for_ferret_tainted 
    428             self.class.ferret_index << self.to_doc  
    429             logger.debug "ferret_create/update: #{self.class.name} : #{self.id}" 
    430           end 
    431           @fields_for_ferret_tainted = false 
     431          @fields_for_ferret_tainted = true 
     432          true 
    432433        end 
    433434        alias :ferret_update :ferret_create 
     
    440441            logger.warn("Could not find indexed value for this object") 
    441442          end 
     443          true 
    442444        end 
    443445         

To edit pages or tickets please login with username/password: aaf/aaf