Sha256: 3d5b3ed059b12ef4c9537ac9b0ebfa7aa5f41d5f2e55f1d70b650f2f23cf3eb3
Contents?: true
Size: 1.34 KB
Versions: 1
Compression:
Stored size: 1.34 KB
Contents
# frozen_string_literal: true module Trailblazer class Finder module Activity class ProcessAdapters < Trailblazer::Activity::Railway def set_orm_adapters(ctx, **) ctx[:adapters].each do |adapter| next unless (ORM_ADAPTERS + ["Basic"]).include?(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" return true end end def set_paging_adapters(ctx, **) ctx[:adapters].each do |adapter| next unless PAGING_ADAPTERS.include?(adapter) return false if ctx[:adapters].include?("Basic") ctx[:orm][:paging] = "Trailblazer::Finder::Adapters::#{adapter}::Paging" return true end true end def invalid_paging_adapter_error(ctx, **) (ctx[:errors] ||= []) << {adapters: "Can't use paging adapters like Kaminari without using an ORM like ActiveRecord or Sequel"} end step :set_orm_adapters step :set_paging_adapters fail :invalid_paging_adapter_error end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
trailblazer-finder-0.10.0 | lib/trailblazer/finder/activity/process_adapters.rb |