./lib/ambition/order.rb in ambition-0.1.1 vs ./lib/ambition/order.rb in ambition-0.1.2
- old
+ new
@@ -1,17 +1,18 @@
module Ambition
module Order
def sort_by(&block)
- query_context.add OrderProcessor.new(table_name, block)
+ query_context.add OrderProcessor.new(self, block)
end
end
class OrderProcessor < Processor
- def initialize(table_name, block)
+ def initialize(owner, block)
super()
@receiver = nil
- @table_name = table_name
+ @owner = owner
+ @table_name = owner.table_name
@block = block
@key = :order
end
##
@@ -43,10 +44,10 @@
when :-@
"#{process(receiver)} DESC"
when :__send__
"#{@table_name}.#{eval('to_s', @block)}"
else
- "#{@table_name}.#{method}"
+ extract_includes(receiver, method) || "#{@table_name}.#{method}"
end
end
end
end