Method: Sequel::Dataset#reverse

Defined in:
lib/sequel/dataset/query.rb

#reverse(*order, &block) ⇒ Object

Returns a copy of the dataset with the order reversed. If no order is given, the existing order is inverted.

DB[:items].reverse(:id) # SELECT * FROM items ORDER BY id DESC
DB[:items].reverse{foo(bar)} # SELECT * FROM items ORDER BY foo(bar) DESC
DB[:items].order(:id).reverse # SELECT * FROM items ORDER BY id DESC
DB[:items].order(:id).reverse(Sequel.desc(:name)) # SELECT * FROM items ORDER BY name ASC


903
904
905
906
907
908
909
910
# File 'lib/sequel/dataset/query.rb', line 903

def reverse(*order, &block)
  if order.empty? && !block
    cached_dataset(:_reverse_ds){order(*invert_order(@opts[:order]))}
  else
    virtual_row_columns(order, block)
    order(*invert_order(order.empty? ? @opts[:order] : order.freeze))
  end
end