Sha256: a32de001cea31906c9fb416aedffac28d2138b9ef2d0f0edc582b1151e03275e
Contents?: true
Size: 1 KB
Versions: 3
Compression:
Stored size: 1 KB
Contents
# frozen_string_literal: true module ActiveFunction class MissingRouteMethod < Error MESSAGE_TEMPLATE = "Missing function route: %s" attr_reader :message def initialize(context) @message = MESSAGE_TEMPLATE % context end end class NotRenderedError < Error MESSAGE_TEMPLATE = "render was not called: %s" attr_reader :message def initialize(context) @message = MESSAGE_TEMPLATE % context end end module Functions module Core attr_reader :action_name, :request, :response def dispatch(action_name, request, response) @action_name = action_name @request = request @response = response raise MissingRouteMethod, @action_name unless respond_to?(action_name) process(@action_name) raise NotRenderedError, @action_name unless performed? @response.to_h end private def process(action) = public_send(action) def performed? = @response.committed? end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
activefunction-0.3.5 | lib/active_function/functions/core.rb |
activefunction-0.3.4 | lib/active_function/functions/core.rb |
activefunction-0.3.3 | lib/active_function/functions/core.rb |