| 
									
										
										
										
											2012-06-20 06:50:51 +00:00
										 |  |  | module  OrbitBasis | 
					
						
							| 
									
										
										
										
											2012-11-12 02:41:41 +00:00
										 |  |  |   module RenderAnywhere | 
					
						
							|  |  |  |     def render_anywhere(partial,opts) | 
					
						
							|  |  |  |       view =  ActionView::Base.new(Orbit::Application.config.paths["app/views"].first) | 
					
						
							|  |  |  |       view.extend ApplicationHelper | 
					
						
							|  |  |  |       view.render(:partial => partial,:locals=>opts) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2012-06-20 06:50:51 +00:00
										 |  |  |   module BaseModel | 
					
						
							|  |  |  |     extend ActiveSupport::Concern | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # included do | 
					
						
							|  |  |  |     #   scope :recent, desc(:_id) | 
					
						
							|  |  |  |     #   scope :exclude_ids, Proc.new { |ids| where(:_id.nin => ids.map(&:to_i)) } | 
					
						
							|  |  |  |     #   scope :by_week, where(:created_at.gte => 7.days.ago.utc) | 
					
						
							|  |  |  |     # end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     module ClassMethods | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       def find_in_batches(opts = {}) | 
					
						
							|  |  |  |         batch_size = opts[:batch_size] || 1000
 | 
					
						
							|  |  |  |         start = opts.delete(:start).to_i || 0
 | 
					
						
							|  |  |  |         objects = self.limit(batch_size).skip(start) | 
					
						
							|  |  |  |         t = Time.new | 
					
						
							|  |  |  |         while objects.any? | 
					
						
							|  |  |  |           yield objects | 
					
						
							|  |  |  |           start += batch_size | 
					
						
							|  |  |  |           # Rails.logger.debug("processed #{start} records in #{Time.new - t} seconds") if Rails.logger.debug? | 
					
						
							|  |  |  |           break if objects.size < batch_size | 
					
						
							|  |  |  |           objects = self.limit(batch_size).skip(start) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |