aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorBryan Helmkamp <bryan@brynary.com>2009-05-17 15:00:10 -0400
committerBryan Helmkamp <bryan@brynary.com>2009-05-17 15:00:10 -0400
commit9d77c08cf8a75636b058c1b85af52ef96e07cee5 (patch)
tree2268fb1875355c2b6a59fee26ef980adeafccb8a /lib
parent2753d8f5768ce0b5f91a96cf81c6ba1d747aeea9 (diff)
downloadrails-9d77c08cf8a75636b058c1b85af52ef96e07cee5.tar.gz
rails-9d77c08cf8a75636b058c1b85af52ef96e07cee5.tar.bz2
rails-9d77c08cf8a75636b058c1b85af52ef96e07cee5.zip
made block stuff read nicer
Conflicts: doc/TODO
Diffstat (limited to 'lib')
-rw-r--r--lib/arel/algebra/relations/operations/group.rb3
-rw-r--r--lib/arel/algebra/relations/operations/order.rb3
-rw-r--r--lib/arel/algebra/relations/operations/project.rb3
-rw-r--r--lib/arel/algebra/relations/utilities/compound.rb5
4 files changed, 11 insertions, 3 deletions
diff --git a/lib/arel/algebra/relations/operations/group.rb b/lib/arel/algebra/relations/operations/group.rb
index 04fd9fea62..879f2352c5 100644
--- a/lib/arel/algebra/relations/operations/group.rb
+++ b/lib/arel/algebra/relations/operations/group.rb
@@ -5,7 +5,8 @@ module Arel
def initialize(relation, *groupings, &block)
@relation = relation
- @groupings = (groupings + (block_given?? [yield(relatoin)] : [])).collect { |g| g.bind(relation) }
+ @groupings = (groupings + arguments_from_block(relation, &block)) \
+ .collect { |g| g.bind(relation) }
end
def externalizable?
diff --git a/lib/arel/algebra/relations/operations/order.rb b/lib/arel/algebra/relations/operations/order.rb
index eccd8bcda0..4e7133f5a8 100644
--- a/lib/arel/algebra/relations/operations/order.rb
+++ b/lib/arel/algebra/relations/operations/order.rb
@@ -5,7 +5,8 @@ module Arel
def initialize(relation, *orderings, &block)
@relation = relation
- @orderings = (orderings + (block_given?? [yield(relation)] : [])).collect { |o| o.bind(relation) }
+ @orderings = (orderings + arguments_from_block(relation, &block)) \
+ .collect { |o| o.bind(relation) }
end
# TESTME
diff --git a/lib/arel/algebra/relations/operations/project.rb b/lib/arel/algebra/relations/operations/project.rb
index 5507ea3163..223d320e22 100644
--- a/lib/arel/algebra/relations/operations/project.rb
+++ b/lib/arel/algebra/relations/operations/project.rb
@@ -5,7 +5,8 @@ module Arel
def initialize(relation, *projections, &block)
@relation = relation
- @projections = (projections + (block_given?? [yield(relation)] : [])).collect { |p| p.bind(relation) }
+ @projections = (projections + arguments_from_block(relation, &block)) \
+ .collect { |p| p.bind(relation) }
end
def attributes
diff --git a/lib/arel/algebra/relations/utilities/compound.rb b/lib/arel/algebra/relations/utilities/compound.rb
index 4d7cece812..99c3d02748 100644
--- a/lib/arel/algebra/relations/utilities/compound.rb
+++ b/lib/arel/algebra/relations/utilities/compound.rb
@@ -13,5 +13,10 @@ module Arel
end
OPERATION
end
+
+ private
+ def arguments_from_block(relation, &block)
+ block_given?? [yield(relation)] : []
+ end
end
end