class Trailblazer::Finder::Activities::PrepareSorting
Public Instance Methods
check_sorting(ctx, **)
click to toggle source
# File lib/trailblazer/finder/activities/prepare_sorting.rb, line 7 def check_sorting(ctx, **) sorting = ctx[:config][:sorting] || nil return true unless ctx[:config][:sorting].empty? || sorting.nil? end
clear_sorting(ctx, **)
click to toggle source
# File lib/trailblazer/finder/activities/prepare_sorting.rb, line 35 def clear_sorting(ctx, **) ctx[:params].delete(:sort) unless ctx[:params][:sort].nil? true end
fetch_sort_direction(config_direction, params_direction = nil)
click to toggle source
# File lib/trailblazer/finder/activities/prepare_sorting.rb, line 24 def fetch_sort_direction(config_direction, params_direction = nil) return config_direction == :asc ? :asc : :desc if params_direction.nil? case params_direction when ":asc", :asc, "asc" :asc else :desc end end
set_sorting(ctx, **)
click to toggle source
# File lib/trailblazer/finder/activities/prepare_sorting.rb, line 12 def set_sorting(ctx, **) return true if ctx[:params][:sort].nil? sorting = ctx[:params][:sort] config = ctx[:config][:sorting] ctx[:sorting] = ctx[:sorting] || {} sorting.split(",").each do |sorter| spt = sorter.split ctx[:sorting][spt[0]] = fetch_sort_direction(config[spt[0].to_sym], spt[1]) if config.include?(spt[0].to_sym) end end