jsonb-uy/sort_param

View on GitHub
lib/sort_param/formatters/hash.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module SortParam
  module Formatters
    class Hash < Formatter
      private

      def format_field(field)
        { formatted_field_name(field) => field_data(field) }
      end

      def format_collection(fields)
        fields.map { |field| format(field) }
              .inject(&:merge!)
      end

      def field_data(field)
        data = definition.field_defaults(field.name) || {}
        data.merge!(direction: field.direction)
        data.merge!(nulls: field.nulls) unless field.nulls.nil?
        data.delete(:rename)
        data
      end
    end
  end
end