Sha256: eaa2aae65cf3749cd3e836f4d9b76e29302e05c60ecb98f12b5ce39e2bf739fd

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

require "request_store"
require "ruby_dig"
require_relative "request_store"
require_relative "logger"
require_relative "param_filter"
require_relative "request_body_filter"
require_relative "json"
require_relative "version"
require_relative "config"
require_relative "util"
require_relative "subrequest_helper"

module Kiev
  class << self
    EMPTY_OBJ = {}.freeze

    def configure
      yield(Config.instance)
    end

    def logger
      Config.instance.logger
    end

    def event(event_name, data = EMPTY_OBJ)
      logger.log(::Logger::Severity::INFO, data, event_name)
    end

    def []=(name, value)
      RequestStore.store[:payload] ||= {}
      RequestStore.store[:payload][name] = value
    end

    def payload(data)
      raise ArgumentError, "Hash expected" unless data.is_a?(Hash)

      RequestStore.store[:payload] ||= {}
      RequestStore.store[:payload].merge!(data)
    end

    def error=(value)
      RequestStore.store[:error] = value
    end

    def request_id
      RequestStore.store[:request_id]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kiev-2.7.3 lib/kiev/base.rb