Changeset 325
- Timestamp:
- 05/08/08 02:49:52 (7 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/picolena/templates/app/models/finder.rb
r314 r325 10 10 @raw_query= raw_query 11 11 Indexer.ensure_index_existence 12 reload! if should_be_reloaded? 12 13 @per_page=results_per_page 13 14 @offset=(page.to_i-1)*results_per_page … … 53 54 } 54 55 55 def self.reload! 56 private 57 58 def reload! 59 Indexer.close 56 60 @@index = nil 61 @@last_reload = Time.now 57 62 end 58 63 59 private 64 def should_be_reloaded? 65 Indexer.reload_file_mtime > last_reload 66 end 67 68 def last_reload 69 @@last_reload ||= Time.at(0) 70 end 60 71 61 72 def sort_by_date trunk/lib/picolena/templates/app/models/indexer.rb
r323 r325 22 22 clear! if remove_first 23 23 @from_scratch = remove_first 24 # Forces Finder. searcher and Finder.index to be reloaded, by removing them from the cache.25 Finder.reload!24 # Forces Finder.index to be reloaded. 25 touch_reload_file! 26 26 logger.start_indexing 27 27 Picolena::IndexedDirectories.each{|dir, alias_dir| … … 129 129 end 130 130 131 # Returns the time at which the reload file was last touched. 132 # Useful to know if other processes have modified the shared index, 133 # and if the Indexer should be reloaded. 134 def reload_file_mtime 135 touch_reload_file! unless File.exists?(reload_file) 136 File.mtime(reload_file) 137 end 138 131 139 # For a given document, it retrieves the time it was last indexed, compare it to 132 140 # its modification time and returns false unless the file has been … … 138 146 139 147 private 148 149 def touch_reload_file! 150 FileUtils.touch(reload_file) 151 end 152 153 def reload_file 154 File.join(Picolena::IndexSavePath,'reload') 155 end 140 156 141 157 def logger trunk/lib/picolena/templates/spec/models/basic_finder_spec.rb
r283 r325 12 12 before(:each) do 13 13 Indexer.clear! 14 Finder.send(:class_variable_set,'@@last_reload',nil) 14 15 end 15 16
