Class: Trailblazer::Finder::Activities::PreparePaging
- Inherits:
-
Activity::Railway
- Object
- Activity::Railway
- Trailblazer::Finder::Activities::PreparePaging
- Defined in:
- lib/trailblazer/finder/activities/prepare_paging.rb
Instance Method Summary collapse
- #check_paging(_ctx, config:) ⇒ Object
- #clear_paging(ctx) ⇒ Object
- #set_paging(ctx, config:) ⇒ Object
Instance Method Details
#check_paging(_ctx, config:) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/trailblazer/finder/activities/prepare_paging.rb', line 7 def check_paging(_ctx, config:, **) paging = config.paging return false if config.paging.empty? || paging.nil? true end |
#clear_paging(ctx) ⇒ Object
25 26 27 28 |
# File 'lib/trailblazer/finder/activities/prepare_paging.rb', line 25 def clear_paging(ctx, **) ctx[:params].delete(:page) unless ctx[:params][:page].nil? true end |
#set_paging(ctx, config:) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/trailblazer/finder/activities/prepare_paging.rb', line 14 def set_paging(ctx, config:, **) ctx[:paging] = config.paging ctx[:paging][:current_page] = ctx.dig(:params, :page) || 1 return true unless ctx[:params][:per_page] ctx[:paging][:per_page] = ctx[:params][:per_page].to_i || ctx[:paging][:per_page] ctx[:paging][:per_page] = ctx[:paging][:max_per_page] if ctx[:paging][:per_page] > ctx[:paging][:max_per_page] ctx[:paging][:per_page] = ctx[:paging][:min_per_page] if ctx[:paging][:per_page] < ctx[:paging][:min_per_page] true end |