class Skein::Context

Attributes

hostname[R]

Properties ===========================================================

process_id[R]
process_name[R]
reporter[RW]

Public Class Methods

default() click to toggle source

Class Methods ========================================================

# File lib/skein/context.rb, line 11
def self.default
  @default ||= self.new
end
new(hostname: nil, process_name: nil, process_id: nil, config: nil) click to toggle source

Instance Methods =====================================================

# File lib/skein/context.rb, line 17
def initialize(hostname: nil, process_name: nil, process_id: nil, config: nil)
  @hostname = (hostname || Skein::Support.hostname).dup.freeze
  @process_name = (process_name || Skein::Support.process_name).dup.freeze
  @process_id = process_id || Skein::Support.process_id
end

Public Instance Methods

exception!(*args) click to toggle source
# File lib/skein/context.rb, line 35
def exception!(*args)
  @reporter&.exception!(*args)
end
ident(object) click to toggle source
# File lib/skein/context.rb, line 23
def ident(object)
  # FUTURE: Add pack/unpack methods for whatever format this ends up being
  #         so the components can be extracted by another application for
  #         diagnostic reasons.
  '%s#%d+%s@%s' % [
    @process_name,
    @process_id,
    object.object_id,
    @hostname
  ]
end
trap() { || ... } click to toggle source
# File lib/skein/context.rb, line 39
def trap
  yield

rescue SystemExit
  raise
rescue Object => e
  self.exception!(e)
end