lib/restful_query/parser.rb in restful_query-0.3.4 vs lib/restful_query/parser.rb in restful_query-0.3.5
- old
+ new
@@ -8,11 +8,11 @@
@integer_columns = columns_from_options(:integer, options)
@map_columns = options[:map_columns] || {}
@single_sort = options[:single_sort] || true
@default_sort_options = options[:sort_options] || {}
@query = (query || {}).dup
- @query['_sort'] ||= options[:default_sort] if options[:default_sort]
+ @default_sort = options[:default_sort] ? [make_sort(options[:default_sort])] : []
@default_join = @query.delete(:join) || :and
extract_sorts_from_conditions
map_conditions
end
@@ -80,11 +80,11 @@
self.sorts.reject! {|s| s.column == column.to_s }
else
new_sort.direction = direction
end
else
- new_sort = Sort.new(column, direction)
+ new_sort = make_sort(column, direction)
self.sorts << new_sort
end
new_sort
end
@@ -145,14 +145,18 @@
end
def sorts_from_hash(sorts)
sort_conditions = [sorts].flatten.compact
sort_conditions.collect do |c|
- s = Sort.parse(c)
- s.column = map_column(s.column)
- s.options = default_sort_options
- s
+ make_sort(c)
end
+ end
+
+ def make_sort(*condition)
+ s = Sort.parse(condition.flatten.join(' '))
+ s.column = map_column(s.column)
+ s.options = default_sort_options
+ s
end
def columns_from_options(column_type, options)
option = "#{column_type}_columns".to_sym
options[option] ? [options.delete(option)].flatten.collect {|c| c.to_s } : []