From 908f2616d5c2b9e26eb180859f7df529a7a59f08 Mon Sep 17 00:00:00 2001
From: Ryan Bigg <radarlistener@gmail.com>
Date: Wed, 14 Sep 2011 18:53:08 +1000
Subject: Document ActiveRecord::QueryMethods#select

---
 .../lib/active_record/relation/query_methods.rb    | 29 ++++++++++++++++++++++
 1 file changed, 29 insertions(+)

(limited to 'activerecord/lib')

diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb
index a11b7a3864..4468a38ee6 100644
--- a/activerecord/lib/active_record/relation/query_methods.rb
+++ b/activerecord/lib/active_record/relation/query_methods.rb
@@ -37,6 +37,35 @@ module ActiveRecord
       relation
     end
 
+    # Works in two unique ways.
+    # 
+    # First: takes a block so it can be used just like Array#select.
+    #
+    #   Model.scoped.select { |m| m.field == value }
+    #
+    # This will build an array of objects from the database for the scope,
+    # converting them into an array and iterating through them using Array#select.
+    #
+    # Second: Modifies the SELECT statement for the query so that only certain
+    # fields are retreived:
+    #
+    #   >> Model.select(:field)
+    #   => [#<Model field:value>]
+    #
+    # Although in the above example it looks as though this method returns an
+    # array, in actual fact it returns a relation object and can have other query
+    # methods appended to it, such as the other methods in ActiveRecord::QueryMethods.
+    #
+    # This method will also take multiple parameters:
+    #
+    #   >> Model.select(:field, :other_field, :and_one_more)
+    #   => [#<Model field: "value", other_field: "value", :and_one_more: "value">]
+    #
+    # Any attributes that do not have fields retreived by a select
+    # will return `nil` when the getter method for that attribute is used:
+    #
+    #   >> Model.select(:field).first.other_field
+    #   => nil
     def select(value = Proc.new)
       if block_given?
         to_a.select {|*block_args| value.call(*block_args) }
-- 
cgit v1.2.3


From ed1ada84ac5b443ef979c14a4d0f1a8a57fe9ab9 Mon Sep 17 00:00:00 2001
From: Vijay Dev <vijaydev.cse@gmail.com>
Date: Tue, 20 Sep 2011 19:39:46 +0530
Subject: copy edits 908f2616

---
 activerecord/lib/active_record/relation/query_methods.rb | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'activerecord/lib')

diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb
index 4468a38ee6..670ba0987d 100644
--- a/activerecord/lib/active_record/relation/query_methods.rb
+++ b/activerecord/lib/active_record/relation/query_methods.rb
@@ -47,21 +47,21 @@ module ActiveRecord
     # converting them into an array and iterating through them using Array#select.
     #
     # Second: Modifies the SELECT statement for the query so that only certain
-    # fields are retreived:
+    # fields are retrieved:
     #
     #   >> Model.select(:field)
     #   => [#<Model field:value>]
     #
     # Although in the above example it looks as though this method returns an
-    # array, in actual fact it returns a relation object and can have other query
+    # array, it actually returns a relation object and can have other query
     # methods appended to it, such as the other methods in ActiveRecord::QueryMethods.
     #
     # This method will also take multiple parameters:
     #
     #   >> Model.select(:field, :other_field, :and_one_more)
-    #   => [#<Model field: "value", other_field: "value", :and_one_more: "value">]
+    #   => [#<Model field: "value", other_field: "value", and_one_more: "value">]
     #
-    # Any attributes that do not have fields retreived by a select
+    # Any attributes that do not have fields retrieved by a select
     # will return `nil` when the getter method for that attribute is used:
     #
     #   >> Model.select(:field).first.other_field
-- 
cgit v1.2.3