diff options
-rw-r--r-- | lib/arel/relations/order.rb | 14 | ||||
-rw-r--r-- | spec/arel/unit/relations/order_spec.rb | 4 |
2 files changed, 11 insertions, 7 deletions
diff --git a/lib/arel/relations/order.rb b/lib/arel/relations/order.rb index b1454973c8..662d3740df 100644 --- a/lib/arel/relations/order.rb +++ b/lib/arel/relations/order.rb @@ -1,15 +1,19 @@ module Arel class Order < Compound - attr_reader :orders - - def initialize(relation, *orders) - @relation, @orders = relation, orders.collect { |o| o.bind(relation) } + attr_reader :orderings + + def initialize(relation, *orderings) + @relation, @orderings = relation, orderings.collect { |o| o.bind(relation) } end def ==(other) self.class == other.class and relation == other.relation and - orders == other.orders + orderings == other.orderings + end + + def orders + orderings + relation.orders end end end
\ No newline at end of file diff --git a/spec/arel/unit/relations/order_spec.rb b/spec/arel/unit/relations/order_spec.rb index 514612f047..d373a8ba12 100644 --- a/spec/arel/unit/relations/order_spec.rb +++ b/spec/arel/unit/relations/order_spec.rb @@ -52,11 +52,11 @@ module Arel @another_attribute = @relation[:name] end - it "manufactures sql with the order clause of the last ordering" do + it "manufactures sql with the order clause of the last ordering preceding the first ordering" do Order.new(@ordered_relation, @another_attribute).to_sql.should be_like(" SELECT `users`.`id`, `users`.`name` FROM `users` - ORDER BY `users`.`name` + ORDER BY `users`.`name`, `users`.`id` ") end end |