Method: OrderQuery::Space#initialize
- Defined in:
- lib/order_query/space.rb
#initialize(base_scope, order_spec) ⇒ Space
Returns a new instance of Space.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/order_query/space.rb', line 15 def initialize(base_scope, order_spec) @base_scope = base_scope @columns = order_spec.map do |cond_spec| Column.new(base_scope, *cond_spec) end # add primary key if columns are not unique unless @columns.last.unique? if @columns.detect(&:unique?) fail ArgumentError, 'Unique column must be last' end @columns << Column.new(base_scope, base_scope.primary_key) end @order_by_sql = SQL::OrderBy.new(@columns) end |