public
Fork of guillermo/active_record_each
Description: Implements ActiveRecord::Base.each instance method
Homepage: http://github.com/guillermo/active_record_each/wikis
Clone URL: git://github.com/collectiveidea/active_record_each.git
name age message
file MIT-LICENSE Sat May 17 08:14:07 -0700 2008 initial import [Guillermo Álvarez Fernández]
file README Sat May 17 09:52:14 -0700 2008 Updated README [Guillermo]
file Rakefile Sat May 17 08:14:07 -0700 2008 initial import [Guillermo Álvarez Fernández]
file init.rb Sat May 17 10:58:17 -0700 2008 remove some text [Guillermo]
directory lib/ Wed Jul 23 13:31:31 -0700 2008 use #step to make the slow_each more clear [brandon]
directory test/ Sun May 18 09:46:44 -0700 2008 * Empty result set don't throw exception [guillermo]
README
=ActiveRecordEach

==Context

If you have to do a migration with a lot of rows, you can't do something like these
  User.find(:all).each do { |u| ... }
because you load all the table in ruby memmory. Ruby-prof says that these is not good, so I do these.

==Summary & Examples

ActiveRecordEach is a 5 minutes plugin that implements ActiveRecord::Base.each instance method.

It acepts any parameter that find accept except :limit

Now you can easily do
  User.each (:conditions => "users.login LIKE 'g%') { |u| Notifier.deliver_report(u) }

==Todo
It could be interesting make somthing like these:
  User.each (:step => 5) {|u| puts u.login}

And fetch 5 users per query

==Installation

You have two methods:
 * If your rails app is managed by git
  git-submodule add   git://github.com/guillermo/active_record_each.git vendor/plugins/active_record_each

 * If doesn't
  git-clone git://github.com/guillermo/active_record_each.git vendor/plugins/active_record_each


Copyright (c) 2008 Guillermo Álvarez Fernández, released under the MIT license