Class: Contracto::Stats

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

Constant Summary collapse

NA_TEXT =
'N/A'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.all_contractsObject

Returns the value of attribute all_contracts.



6
7
8
# File 'lib/contracto/stats.rb', line 6

def all_contracts
  @all_contracts
end

Class Method Details

.all_responsesObject



16
17
18
# File 'lib/contracto/stats.rb', line 16

def all_responses
  @all_responses ||= all_contracts.map(&:responses).map(&:count).inject(&:+)
end

.contracts_stats_summaryObject



32
33
34
# File 'lib/contracto/stats.rb', line 32

def contracts_stats_summary
  "contracts usage: #{used_contracts.size}/#{all_contracts.size} (#{contracts_usage * 100}%)"
end

.contracts_usageObject



20
21
22
23
24
# File 'lib/contracto/stats.rb', line 20

def contracts_usage
  return NA_TEXT if all_contracts.size.zero?

  (used_contracts.size/all_contracts.size.to_f).round(2)
end

.responses_stats_summaryObject



36
37
38
# File 'lib/contracto/stats.rb', line 36

def responses_stats_summary
  "examples usage: #{used_responses.size}/#{all_responses.size} (#{responses_usage * 100}%)"
end

.responses_usageObject



26
27
28
29
30
# File 'lib/contracto/stats.rb', line 26

def responses_usage
  return NA_TEXT if all_responses.size.zero?

  (used_responses.size/all_responses.size.to_f).round(2)
end

.summaryObject



40
41
42
43
44
45
46
47
48
# File 'lib/contracto/stats.rb', line 40

def summary
  length = contracts_stats_summary.length
  [
    'stats'.center(length, '-'),
    contracts_stats_summary,
    responses_stats_summary,
    ('-' * length) + ' '
  ].join("\n")
end

.used_contractsObject



8
9
10
# File 'lib/contracto/stats.rb', line 8

def used_contracts
  @used_contracts ||= []
end

.used_responsesObject



12
13
14
# File 'lib/contracto/stats.rb', line 12

def used_responses
  @used_responses ||= []
end