Class: Assistant::LogItem

Inherits:
Object
  • Object
show all
Defined in:
lib/assistant/log_item.rb

Overview

Log base class

Constant Summary collapse

VALID_LEVELS =
%i[info warning error].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(level:, source:, detail:, message:, trace: nil) ⇒ LogItem

Returns a new instance of LogItem.



10
11
12
13
14
15
16
# File 'lib/assistant/log_item.rb', line 10

def initialize(level:, source:, detail:, message:, trace: nil)
  @level = level.to_sym
  @source = source.to_sym
  @detail = detail.to_sym
  @message = message.to_s
  @trace = trace
end

Instance Attribute Details

#detailObject (readonly)

Returns the value of attribute detail.



8
9
10
# File 'lib/assistant/log_item.rb', line 8

def detail
  @detail
end

#levelObject (readonly)

Returns the value of attribute level.



8
9
10
# File 'lib/assistant/log_item.rb', line 8

def level
  @level
end

#messageObject (readonly)

Returns the value of attribute message.



8
9
10
# File 'lib/assistant/log_item.rb', line 8

def message
  @message
end

#sourceObject (readonly)

Returns the value of attribute source.



8
9
10
# File 'lib/assistant/log_item.rb', line 8

def source
  @source
end

#traceObject (readonly)

Returns the value of attribute trace.



8
9
10
# File 'lib/assistant/log_item.rb', line 8

def trace
  @trace
end

Instance Method Details

#itemObject



22
23
24
# File 'lib/assistant/log_item.rb', line 22

def item
  { level: level, source: source, detail: detail, message: message, trace: trace }
end

#valid?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/assistant/log_item.rb', line 18

def valid?
  [valid_level?, valid_source?, valid_detail?, valid_message?].all?
end

#valid_detail?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/assistant/log_item.rb', line 41

def valid_detail?
  detail.size.positive? && source != detail
end

#valid_level?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/assistant/log_item.rb', line 33

def valid_level?
  VALID_LEVELS.include?(level)
end

#valid_message?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/assistant/log_item.rb', line 45

def valid_message?
  message.size.positive?
end

#valid_source?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/assistant/log_item.rb', line 37

def valid_source?
  source.size.positive? && detail != source
end