module  OrbitBasis
  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
  
  module BaseModel
    extend ActiveSupport::Concern
    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
          break if objects.size < batch_size
          objects = self.limit(batch_size).skip(start)
        end
      end
    end
  end
end