| 
									
										
										
										
											2012-05-11 08:16:09 +00:00
										 |  |  | # encoding: utf-8  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace :items do | 
					
						
							|  |  |  |   task :tree_changes => :environment do | 
					
						
							|  |  |  |   	Item.all.each do |item| | 
					
						
							| 
									
										
										
										
											2012-05-18 07:20:45 +00:00
										 |  |  |   		item.position -= 1
 | 
					
						
							| 
									
										
										
										
											2012-05-11 08:16:09 +00:00
										 |  |  |   		item.parent_ids = ancestors(item) | 
					
						
							|  |  |  |   		item.rename(:full_name, :path) | 
					
						
							|  |  |  |   		item.save | 
					
						
							|  |  |  |   	end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def ancestors(item) | 
					
						
							|  |  |  |     node, nodes = item, [] | 
					
						
							|  |  |  |     nodes << node = node.parent while !node.parent.blank? rescue nil | 
					
						
							|  |  |  |     nodes.reverse | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | end |