Class: Imapcli::Stats

Inherits:
Object
  • Object
show all
Defined in:
lib/imapcli/stats.rb

Overview

Handles mailbox statistics.

message_sizes is an array of message sizes in bytes.

Instance Method Summary collapse

Constructor Details

#initialize(message_sizes = []) ⇒ Stats

Returns a new instance of Stats.



7
8
9
# File 'lib/imapcli/stats.rb', line 7

def initialize(message_sizes = [])
  @message_sizes = message_sizes
end

Instance Method Details

#add(other_stats) ⇒ Object

Adds other statistics.



12
13
14
15
16
# File 'lib/imapcli/stats.rb', line 12

def add(other_stats)
  return unless other_stats
  @message_sizes += other_stats.message_sizes
  invalidate
end

#countObject



18
19
20
# File 'lib/imapcli/stats.rb', line 18

def count
  @count ||= @message_sizes&.length
end

#max_sizeObject



42
43
44
# File 'lib/imapcli/stats.rb', line 42

def max_size
  @max ||= convert_bytes(@message_sizes.max)
end

#median_sizeObject



34
35
36
# File 'lib/imapcli/stats.rb', line 34

def median_size
  @median ||= convert_bytes(@message_sizes.median)
end

#min_sizeObject



26
27
28
# File 'lib/imapcli/stats.rb', line 26

def min_size
  @min ||= convert_bytes(@message_sizes.min)
end

#quartile_1_sizeObject



30
31
32
# File 'lib/imapcli/stats.rb', line 30

def quartile_1_size
  @q1 ||= convert_bytes(@message_sizes.percentile(25))
end

#quartile_3_sizeObject



38
39
40
# File 'lib/imapcli/stats.rb', line 38

def quartile_3_size
  @q3 ||= convert_bytes(@message_sizes.percentile(75))
end

#total_sizeObject



22
23
24
# File 'lib/imapcli/stats.rb', line 22

def total_size
  @total_size ||= convert_bytes(@message_sizes.sum)
end