Class: Watchforge::Context

Inherits:
Object
  • Object
show all
Defined in:
lib/watchforge/context.rb

Instance Method Summary collapse

Constructor Details

#initializeContext

Returns a new instance of Context.



8
9
10
11
12
13
14
15
# File 'lib/watchforge/context.rb', line 8

def initialize
  @mutex = Mutex.new
  @user = nil
  @tags = {}
  @extra = {}
  @request = nil
  @breadcrumbs = []
end

Instance Method Details

#add_breadcrumb(category, message, data = nil) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/watchforge/context.rb', line 22

def add_breadcrumb(category, message, data = nil)
  synchronize do
    @breadcrumbs << {
      category: category,
      message: message,
      level: "info",
      timestamp: Time.now.utc.iso8601,
      data: data
    }
    @breadcrumbs = @breadcrumbs.last(100)
  end
end

#set_extra(extra) ⇒ Object



19
# File 'lib/watchforge/context.rb', line 19

def set_extra(extra) = synchronize { @extra.merge!(extra) }

#set_request(request) ⇒ Object



20
# File 'lib/watchforge/context.rb', line 20

def set_request(request) = synchronize { @request = request }

#set_tags(tags) ⇒ Object



18
# File 'lib/watchforge/context.rb', line 18

def set_tags(tags) = synchronize { @tags.merge!(tags) }

#set_user(user) ⇒ Object



17
# File 'lib/watchforge/context.rb', line 17

def set_user(user) = synchronize { @user = user }

#snapshotObject



35
36
37
38
39
# File 'lib/watchforge/context.rb', line 35

def snapshot
  synchronize do
    [@user, @tags.dup, @extra.dup, @request, @breadcrumbs.dup]
  end
end