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 } : []