Sha256: e8a88dc088bba16572d897453e2bc5246db4c3a5077979a204a36dd8c5d8bd7d

Contents?: true

Size: 722 Bytes

Versions: 1

Compression:

Stored size: 722 Bytes

Contents

# frozen_string_literal: true

class Solid::Result
  module EventLogs
    require_relative 'event_logs/listener'
    require_relative 'event_logs/listeners'
    require_relative 'event_logs/config'
    require_relative 'event_logs/tree'
    require_relative 'event_logs/tracking'

    THREAD_VAR_NAME = :solid_result_event_logs_tracking

    EnsureResult = ->(result) do
      return result if result.is_a?(::Solid::Result)

      raise Error::UnexpectedOutcome.build(outcome: result, origin: :event_logs)
    end

    def self.tracking
      Thread.current[THREAD_VAR_NAME] ||= Tracking.instance
    end
  end

  def self.event_logs(name: nil, desc: nil, &block)
    EventLogs.tracking.exec(name, desc, &block)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
solid-result-2.0.0 lib/solid/result/event_logs.rb