Class: Trailblazer::Finder::Activities::PrepareSorting
- Inherits:
-
Activity::Railway
- Object
- Activity::Railway
- Trailblazer::Finder::Activities::PrepareSorting
- Defined in:
- lib/trailblazer/finder/activities/prepare_sorting.rb
Instance Method Summary collapse
- #check_sorting(_ctx, config:) ⇒ Object
- #clear_sorting(ctx) ⇒ Object
- #fetch_sort_direction(config_direction, params_direction = nil) ⇒ Object
- #set_sorting(ctx, config:) ⇒ Object
Instance Method Details
#check_sorting(_ctx, config:) ⇒ Object
7 8 9 10 |
# File 'lib/trailblazer/finder/activities/prepare_sorting.rb', line 7 def check_sorting(_ctx, config:, **) sorting = config.sorting return true unless sorting.empty? || sorting.nil? end |
#clear_sorting(ctx) ⇒ Object
35 36 37 38 |
# 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) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# 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, config:) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/trailblazer/finder/activities/prepare_sorting.rb', line 12 def set_sorting(ctx, config:, **) return true if ctx[:params][:sort].nil? sorting = ctx[:params][:sort] sorting_config = config.sorting ctx[:sorting] = ctx[:sorting] || {} sorting.split(",").each do |sorter| spt = sorter.split ctx[:sorting][spt[0]] = fetch_sort_direction(sorting_config[spt[0].to_sym], spt[1]) if sorting_config.include?(spt[0].to_sym) end end |