Sha256: 6d49491646092f8a1147cba2f9624ff039422fc5d4fee7f0de53e0032f0b6ba3
Contents?: true
Size: 842 Bytes
Versions: 1
Compression:
Stored size: 842 Bytes
Contents
# frozen_string_literal: true require "json" module ActiveFunction module Functions module Rendering ActiveFunction.register_plugin :rendering, self Error = Class.new(StandardError) class DoubleRenderError < Error MESSAGE_TEMPLATE = "#render was called multiple times in action: %s" attr_reader :message def initialize(context) @message = MESSAGE_TEMPLATE % context end end DEFAULT_HEADER = {"Content-Type" => "application/json"}.freeze def render(status: 200, json: {}, head: {}) raise DoubleRenderError, @action_name if performed? @response.status = status @response.headers = head.merge(Hash[DEFAULT_HEADER]) @response.body = JSON.generate(json) @response.commit! end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activefunction-0.4.0 | lib/active_function/functions/rendering.rb |