Class: Lapsoss::Scope

Inherits:
Object
  • Object
show all
Defined in:
lib/lapsoss/scope.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeScope

Returns a new instance of Scope.



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

def initialize
  @breadcrumbs = []
  @tags = {}
  @user = {}
  @extra = {}
  @transaction_name = nil
  @transaction_source = nil
end

Instance Attribute Details

Returns the value of attribute breadcrumbs.



5
6
7
# File 'lib/lapsoss/scope.rb', line 5

def breadcrumbs
  @breadcrumbs
end

#extraObject (readonly)

Returns the value of attribute extra.



5
6
7
# File 'lib/lapsoss/scope.rb', line 5

def extra
  @extra
end

#tagsObject (readonly)

Returns the value of attribute tags.



5
6
7
# File 'lib/lapsoss/scope.rb', line 5

def tags
  @tags
end

#transaction_nameObject

Returns the value of attribute transaction_name.



6
7
8
# File 'lib/lapsoss/scope.rb', line 6

def transaction_name
  @transaction_name
end

#transaction_sourceObject

Returns the value of attribute transaction_source.



6
7
8
# File 'lib/lapsoss/scope.rb', line 6

def transaction_source
  @transaction_source
end

#userObject (readonly)

Returns the value of attribute user.



5
6
7
# File 'lib/lapsoss/scope.rb', line 5

def user
  @user
end

Instance Method Details

#add_breadcrumb(message, type: :default, **metadata) ⇒ Object



17
18
19
20
21
22
# File 'lib/lapsoss/scope.rb', line 17

def add_breadcrumb(message, type: :default, **)
  breadcrumb = Breadcrumb.build(message, type: type, metadata: )
  @breadcrumbs << breadcrumb
  # Keep breadcrumbs to a reasonable limit
  @breadcrumbs.shift if @breadcrumbs.length > 20
end

#apply_context(context) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/lapsoss/scope.rb', line 24

def apply_context(context)
  @tags.merge!(context[:tags] || {})
  @user.merge!(context[:user] || {})
  @extra.merge!(context[:extra] || {})

  # Handle breadcrumbs if provided
  return unless context[:breadcrumbs]

  @breadcrumbs.concat(context[:breadcrumbs])
  # Keep breadcrumbs to a reasonable limit
  @breadcrumbs.shift while @breadcrumbs.length > 20
end

#clearObject



37
38
39
40
41
42
43
44
# File 'lib/lapsoss/scope.rb', line 37

def clear
  @breadcrumbs.clear
  @tags.clear
  @user.clear
  @extra.clear
  @transaction_name = nil
  @transaction_source = nil
end

#set_context(key, value) ⇒ Object



46
47
48
# File 'lib/lapsoss/scope.rb', line 46

def set_context(key, value)
  @extra[key] = value
end

#set_extra(key, value) ⇒ Object



62
63
64
# File 'lib/lapsoss/scope.rb', line 62

def set_extra(key, value)
  @extra[key] = value
end

#set_extras(extras) ⇒ Object



66
67
68
# File 'lib/lapsoss/scope.rb', line 66

def set_extras(extras)
  @extra.merge!(extras)
end

#set_tag(key, value) ⇒ Object



54
55
56
# File 'lib/lapsoss/scope.rb', line 54

def set_tag(key, value)
  @tags[key] = value
end

#set_tags(tags) ⇒ Object



58
59
60
# File 'lib/lapsoss/scope.rb', line 58

def set_tags(tags)
  @tags.merge!(tags)
end

#set_transaction_name(name, source: nil) ⇒ Object



70
71
72
73
# File 'lib/lapsoss/scope.rb', line 70

def set_transaction_name(name, source: nil)
  @transaction_name = name
  @transaction_source = source if source
end

#set_user(user_info) ⇒ Object



50
51
52
# File 'lib/lapsoss/scope.rb', line 50

def set_user()
  @user.merge!()
end