Permalink
Browse files

Add documentation for the extending method in ActiveRecord:QueryMethods

  • Loading branch information...
1 parent bde113a commit 681c4dbb0222ac403de8ea0bfcf8ad77c5430585 @radar radar committed Sep 13, 2011
Showing with 36 additions and 0 deletions.
  1. +36 −0 activerecord/lib/active_record/relation/query_methods.rb
@@ -147,6 +147,42 @@ def from(value)
relation
end
+ # Used to extend a scope with additional methods, either through
+ # a module or through a block provided.
+ #
+ # The object returned is a relation, which can be further extended.
+ #
+ # === Using a module
+ #
+ # module Pagination
+ # def page(number)
+ # # pagination code goes here
+ # end
+ # end
+ #
+ # scope = Model.scoped.extending(Pagination)
+ # scope.page(params[:page])
+ #
+ # This can also take a list of modules also:
+ #
+ # scope = Model.scoped.extending(Pagination, SomethingElse)
+ #
+ # === Using a block
+ #
+ # scope = Model.scoped.extending do
+ # def page(number)
+ # # pagination code goes here
+ # end
+ # end
+ # scope.page(params[:page])
+ #
+ # You can also use a block and a module list:
+ #
+ # scope = Model.scoped.extending(Pagination) do
+ # def per_page(number)
+ # # pagination code goes here
+ # end
+ # end
def extending(*modules)
modules << Module.new(&Proc.new) if block_given?

0 comments on commit 681c4db

Please sign in to comment.