Class: RailsConsolePro::ProfileResult

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_console_pro/profile_result.rb

Overview

Value object representing a profiling session summary

Defined Under Namespace

Classes: DuplicateQuery, QuerySample

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(label:, duration_ms:, result:, error:, query_count:, cached_query_count:, write_query_count:, total_sql_duration_ms:, slow_queries:, duplicate_queries:, query_samples:, instantiation_count:, cache_hits:, cache_misses:, cache_writes:, started_at:, finished_at:) ⇒ ProfileResult

Returns a new instance of ProfileResult.



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/rails_console_pro/profile_result.rb', line 41

def initialize(label:, duration_ms:, result:, error:, query_count:, cached_query_count:,
               write_query_count:, total_sql_duration_ms:, slow_queries:, duplicate_queries:,
               query_samples:, instantiation_count:, cache_hits:, cache_misses:,
               cache_writes:, started_at:, finished_at:)
  @label = label
  @duration_ms = duration_ms
  @result = result
  @error = error
  @query_count = query_count
  @cached_query_count = cached_query_count
  @write_query_count = write_query_count
  @total_sql_duration_ms = total_sql_duration_ms
  @slow_queries = Array(slow_queries)
  @duplicate_queries = Array(duplicate_queries)
  @query_samples = Array(query_samples)
  @instantiation_count = instantiation_count
  @cache_hits = cache_hits
  @cache_misses = cache_misses
  @cache_writes = cache_writes
  @started_at = started_at
  @finished_at = finished_at
end

Instance Attribute Details

#cache_hitsObject (readonly)

Returns the value of attribute cache_hits.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def cache_hits
  @cache_hits
end

#cache_missesObject (readonly)

Returns the value of attribute cache_misses.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def cache_misses
  @cache_misses
end

#cache_writesObject (readonly)

Returns the value of attribute cache_writes.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def cache_writes
  @cache_writes
end

#cached_query_countObject (readonly)

Returns the value of attribute cached_query_count.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def cached_query_count
  @cached_query_count
end

#duplicate_queriesObject (readonly)

Returns the value of attribute duplicate_queries.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def duplicate_queries
  @duplicate_queries
end

#duration_msObject (readonly)

Returns the value of attribute duration_ms.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def duration_ms
  @duration_ms
end

#errorObject (readonly)

Returns the value of attribute error.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def error
  @error
end

#finished_atObject (readonly)

Returns the value of attribute finished_at.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def finished_at
  @finished_at
end

#instantiation_countObject (readonly)

Returns the value of attribute instantiation_count.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def instantiation_count
  @instantiation_count
end

#labelObject (readonly)

Returns the value of attribute label.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def label
  @label
end

#query_countObject (readonly)

Returns the value of attribute query_count.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def query_count
  @query_count
end

#query_samplesObject (readonly)

Returns the value of attribute query_samples.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def query_samples
  @query_samples
end

#resultObject (readonly)

Returns the value of attribute result.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def result
  @result
end

#slow_queriesObject (readonly)

Returns the value of attribute slow_queries.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def slow_queries
  @slow_queries
end

#started_atObject (readonly)

Returns the value of attribute started_at.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def started_at
  @started_at
end

#total_sql_duration_msObject (readonly)

Returns the value of attribute total_sql_duration_ms.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def total_sql_duration_ms
  @total_sql_duration_ms
end

#write_query_countObject (readonly)

Returns the value of attribute write_query_count.



23
24
25
# File 'lib/rails_console_pro/profile_result.rb', line 23

def write_query_count
  @write_query_count
end

Instance Method Details

#cache_activity?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/rails_console_pro/profile_result.rb', line 72

def cache_activity?
  cache_hits.positive? || cache_misses.positive? || cache_writes.positive?
end

#duplicate_queries?Boolean

Returns:

  • (Boolean)


80
81
82
# File 'lib/rails_console_pro/profile_result.rb', line 80

def duplicate_queries?
  duplicate_queries.any?
end

#error?Boolean

Returns:

  • (Boolean)


68
69
70
# File 'lib/rails_console_pro/profile_result.rb', line 68

def error?
  !error.nil?
end

#export_to_file(file_path, format: nil) ⇒ Object



104
105
106
# File 'lib/rails_console_pro/profile_result.rb', line 104

def export_to_file(file_path, format: nil)
  FormatExporter.export_to_file(self, file_path, format: format)
end

#label?Boolean

Returns:

  • (Boolean)


64
65
66
# File 'lib/rails_console_pro/profile_result.rb', line 64

def label?
 !(label.nil? || (label.respond_to?(:empty?) && label.empty?))
end

#query_samples?Boolean

Returns:

  • (Boolean)


84
85
86
# File 'lib/rails_console_pro/profile_result.rb', line 84

def query_samples?
  query_samples.any?
end

#read_query_countObject



88
89
90
# File 'lib/rails_console_pro/profile_result.rb', line 88

def read_query_count
  query_count - write_query_count
end

#slow_queries?Boolean

Returns:

  • (Boolean)


76
77
78
# File 'lib/rails_console_pro/profile_result.rb', line 76

def slow_queries?
  slow_queries.any?
end

#to_html(style: :default) ⇒ Object



100
101
102
# File 'lib/rails_console_pro/profile_result.rb', line 100

def to_html(style: :default)
  FormatExporter.to_html(self, title: "Profile: #{label || 'Session'}", style: style)
end

#to_json(pretty: true) ⇒ Object



92
93
94
# File 'lib/rails_console_pro/profile_result.rb', line 92

def to_json(pretty: true)
  FormatExporter.to_json(self, pretty: pretty)
end

#to_yamlObject



96
97
98
# File 'lib/rails_console_pro/profile_result.rb', line 96

def to_yaml
  FormatExporter.to_yaml(self)
end