Class: Jazzy::Stats

Inherits:
Object
  • Object
show all
Includes:
Config::Mixin
Defined in:
lib/jazzy/stats.rb

Overview

Collect + report metadata about a processed module

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Config::Mixin

#config

Constructor Details

#initializeStats

Returns a new instance of Stats.



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

def initialize
  @documented = @acl_skipped = @spi_skipped = 0
  @undocumented_decls = []
end

Instance Attribute Details

#acl_skippedObject (readonly)

Returns the value of attribute acl_skipped.



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

def acl_skipped
  @acl_skipped
end

#documentedObject (readonly)

Returns the value of attribute documented.



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

def documented
  @documented
end

#spi_skippedObject (readonly)

Returns the value of attribute spi_skipped.



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

def spi_skipped
  @spi_skipped
end

#undocumented_declsObject (readonly)

Returns the value of attribute undocumented_decls.



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

def undocumented_decls
  @undocumented_decls
end

Instance Method Details

#acl_includedObject



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

def acl_included
  documented + undocumented
end

#add_acl_skippedObject



14
15
16
# File 'lib/jazzy/stats.rb', line 14

def add_acl_skipped
  @acl_skipped += 1
end

#add_documentedObject



10
11
12
# File 'lib/jazzy/stats.rb', line 10

def add_documented
  @documented += 1
end

#add_spi_skippedObject



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

def add_spi_skipped
  @spi_skipped += 1
end

#add_undocumented(decl) ⇒ Object



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

def add_undocumented(decl)
  @undocumented_decls << decl
end

#doc_coverageObject



68
69
70
71
72
# File 'lib/jazzy/stats.rb', line 68

def doc_coverage
  return 0 if acl_included == 0

  (100 * documented) / acl_included
end

#remove_undocumented(decl) ⇒ Object



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

def remove_undocumented(decl)
  @undocumented_decls.delete(decl)
end

#reportObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/jazzy/stats.rb', line 43

def report
  puts "#{doc_coverage}% documentation coverage " \
    "with #{undocumented} undocumented " \
    "#{symbol_or_symbols(undocumented)}"

  if acl_included > 0
    swift_acls = comma_list(config.min_acl.included_levels)
    puts "included #{acl_included} " +
         (config.objc_mode ? '' : "#{swift_acls} ") +
         symbol_or_symbols(acl_included)
  end

  if !config.objc_mode && acl_skipped > 0
    puts "skipped #{acl_skipped} " \
      "#{comma_list(config.min_acl.excluded_levels)} " \
      "#{symbol_or_symbols(acl_skipped)} " \
      '(use `--min-acl` to specify a different minimum ACL)'
  end

  if spi_skipped > 0
    puts "skipped #{spi_skipped} SPI #{symbol_or_symbols(spi_skipped)} " \
      '(use `--include-spi-declarations` to include these)'
  end
end

#undocumentedObject



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

def undocumented
  undocumented_decls.count
end