Class: Flame::SentryContext

Inherits:
Object
  • Object
show all
Extended by:
Memery
Includes:
Memery
Defined in:
lib/flame/sentry_context.rb,
lib/flame/sentry_context/version.rb

Overview

Class for request context initialization

Constant Summary collapse

DEFAULT_TYPES =
{
	puma: {
		level: :error
	}.freeze,
	server: {
		level: :error
	}.freeze,
	not_found: {
		level: :warning,
		message: -> { "404: #{@controller.request.path}" }
	}.freeze,
	translations: {
		level: :error,
		message: -> { "Translation missing: #{@extra[:key]}" }
	}.freeze,
	validation_errors: {
		level: :warning,
		message: -> { "Validation errors: #{@extra[:form_class]}" }
	}.freeze
}.freeze
VERSION =
'0.3.1'

Class Attribute Summary collapse

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type, controller: nil, env: controller&.request&.env, **extra) ⇒ SentryContext

Returns a new instance of SentryContext.



53
54
55
56
57
58
59
60
61
62
# File 'lib/flame/sentry_context.rb', line 53

def initialize(
	type, controller: nil, env: controller&.request&.env, **extra
)
	@type = type
	@type_data = self.class.types[@type]
	@controller = controller
	@env = env
	@user = extra.delete(:user) || instance_exec(&self.class.user_block)
	@extra = extra
end

Class Attribute Details

.user_blockObject



42
43
44
# File 'lib/flame/sentry_context.rb', line 42

def user_block
	@user_block ||= -> {}
end

Instance Attribute Details

#exceptionObject (readonly)

Returns the value of attribute exception.



51
52
53
# File 'lib/flame/sentry_context.rb', line 51

def exception
  @exception
end

Instance Method Details

#capture_exception(exception) ⇒ Object



64
65
66
67
68
# File 'lib/flame/sentry_context.rb', line 64

def capture_exception(exception)
	@extra[:sql] = exception.sql if exception.respond_to? :sql

	Sentry.capture_exception exception, **context
end

#capture_messageObject



70
71
72
73
74
# File 'lib/flame/sentry_context.rb', line 70

def capture_message
	message = instance_exec(&@type_data[:message])

	Sentry.capture_message message, **context
end