Class: Trailblazer::Finder::Activities::ProcessAdapters
- Inherits:
-
Activity::Railway
- Object
- Activity::Railway
- Trailblazer::Finder::Activities::ProcessAdapters
- Defined in:
- lib/trailblazer/finder/activities/process_adapters.rb
Instance Method Summary collapse
- #invalid_paginator_error(ctx) ⇒ Object
- #invalid_paginator_handler(_e, ctx, _flow_options) ⇒ Object
- #set_adapter(ctx, _flow_options) ⇒ Object
- #set_paginator(ctx) ⇒ Object
Instance Method Details
#invalid_paginator_error(ctx) ⇒ Object
27 28 29 30 31 |
# File 'lib/trailblazer/finder/activities/process_adapters.rb', line 27 def invalid_paginator_error(ctx, **) (ctx[:errors] ||= []) << { paginator: "Can't use paginator #{ctx[:config].paginator} without using an ORM like ActiveRecord or Sequel" } end |
#invalid_paginator_handler(_e, ctx, _flow_options) ⇒ Object
33 34 35 |
# File 'lib/trailblazer/finder/activities/process_adapters.rb', line 33 def invalid_paginator_handler(_e, (ctx, ), **) invalid_paginator_error(ctx) end |
#set_adapter(ctx, _flow_options) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/trailblazer/finder/activities/process_adapters.rb', line 7 def set_adapter((ctx, ), **) adapter = ctx[:adapter] ctx[:orm] = {} ctx[:orm][:adapter] = adapter ctx[:orm][:predicates] = "Trailblazer::Finder::Adapters::#{adapter}::Predicates" ctx[:orm][:paging] = "Trailblazer::Finder::Adapters::#{adapter}::Paging" ctx[:orm][:sorting] = "Trailblazer::Finder::Adapters::#{adapter}::Sorting" true end |
#set_paginator(ctx) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/trailblazer/finder/activities/process_adapters.rb', line 17 def set_paginator(ctx, **) paginator = ctx[:config].paginator return true unless paginator return false unless EXT_ORM_ADAPTERS.(ctx[:orm][:adapter]) return false unless PAGING_ADAPTERS.(paginator) ctx[:orm][:paging] = "Trailblazer::Finder::Adapters::#{paginator}::Paging" true end |