Class: Profiler::Collectors::ConsoleCollector

Inherits:
BaseCollector show all
Defined in:
lib/profiler/collectors/console_collector.rb

Instance Attribute Summary

Attributes inherited from BaseCollector

#profile

Instance Method Summary collapse

Methods inherited from BaseCollector

descendants, inherited, #name, #panel_content, #render_html, #render_mode, #subscribe

Constructor Details

#initialize(profile, expression:) ⇒ ConsoleCollector

Returns a new instance of ConsoleCollector.



8
9
10
11
12
13
# File 'lib/profiler/collectors/console_collector.rb', line 8

def initialize(profile, expression:)
  super(profile)
  @expression = expression
  @return_value = nil
  @return_value_captured = false
end

Instance Method Details

#collectObject



42
43
44
45
46
# File 'lib/profiler/collectors/console_collector.rb', line 42

def collect
  data = { expression: @expression }
  data[:return_value] = @return_value if @return_value_captured
  store_data(data)
end

#has_data?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/profiler/collectors/console_collector.rb', line 48

def has_data?
  @expression.to_s.length > 0
end

#iconObject



23
24
25
# File 'lib/profiler/collectors/console_collector.rb', line 23

def icon
  ">_"
end

#priorityObject



27
28
29
# File 'lib/profiler/collectors/console_collector.rb', line 27

def priority
  5
end

#set_return_value(value) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/profiler/collectors/console_collector.rb', line 15

def set_return_value(value)
  @return_value = value.inspect.slice(0, 10_000)
  @return_value_captured = true
rescue
  @return_value = "(uninspectable)"
  @return_value_captured = true
end

#tab_configObject



31
32
33
34
35
36
37
38
39
40
# File 'lib/profiler/collectors/console_collector.rb', line 31

def tab_config
  {
    key: "console",
    label: "Console",
    icon: icon,
    priority: priority,
    enabled: true,
    default_active: true
  }
end

#toolbar_summaryObject



52
53
54
# File 'lib/profiler/collectors/console_collector.rb', line 52

def toolbar_summary
  { text: @expression.to_s[0, 30], color: "blue" }
end