Sha256: 37d0f219312f4f007279c0137a1c3170ed0a251068b41d9b18f25cc9f98bae60
Contents?: true
Size: 839 Bytes
Versions: 3
Compression:
Stored size: 839 Bytes
Contents
# frozen_string_literal: true module Wayfarer module Middleware module Controller def self.included(base) base.cattr_accessor :chain, default: Chain.empty base.attr_accessor :task base.extend(ClassMethods) base.include(InstanceMethods) base.include(Wayfarer::Callbacks) end module ClassMethods def use(middleware) chain.push(middleware.lazy) api(middleware) end def api(middleware) include middleware.api end end module InstanceMethods def call(task) self.task = task task.metadata.job ||= self task.metadata.controller = self self.class.chain.call(task) do yield if block_given? end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
wayfarer-0.4.6 | lib/wayfarer/middleware/controller.rb |
wayfarer-0.4.5 | lib/wayfarer/middleware/controller.rb |
wayfarer-0.4.4 | lib/wayfarer/middleware/controller.rb |