Sha256: 970436cabacf29e1687a0c36b4d54dd9960aa7c53ef0c3019a29602c779523c0

Contents?: true

Size: 1.09 KB

Versions: 3

Compression:

Stored size: 1.09 KB

Contents

# frozen_string_literal: true

require "request_store"
require "ruby_dig"
require_relative "request_store"
require_relative "request_logger"
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

3 entries across 3 versions & 1 rubygems

Version Path
kiev-4.0.0 lib/kiev/base.rb
kiev-3.0.0 lib/kiev/base.rb
kiev-2.8.0 lib/kiev/base.rb