Sha256: 4977f5092d972241662d2eb326b23024875dcec121dfe6b4a32922c5776e04cf

Contents?: true

Size: 766 Bytes

Versions: 2

Compression:

Stored size: 766 Bytes

Contents

# frozen_string_literal: true

# depends upon #current_sort_direction_for

module Sort
  module NextDirectionForHelper
    def next_sort_direction_for(attribute, format: :short)
      direction = current_sort_direction_for(attribute)

      return _ascending(format) unless direction
      return _ascending(format) unless direction.presence_in %w[asc desc ascending descending]
      return _ascending(format) if direction.presence_in %w[desc descending]
      return _descending(format) if direction.presence_in %w[asc ascending]
    end

    private

    def _ascending(format)
      return 'asc' if format.to_s == 'short'

      'ascending'
    end

    def _descending(format)
      return 'desc' if format.to_s == 'short'

      'descending'
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
actionset-0.4.2 lib/action_set/helpers/sort/next_direction_for_helper.rb
actionset-0.4.1 lib/action_set/helpers/sort/next_direction_for_helper.rb