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.



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

def initialize
  @documented = @acl_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

#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



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

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_undocumented(decl) ⇒ Object



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

def add_undocumented(decl)
  @undocumented_decls << decl
end

#doc_coverageObject



59
60
61
62
63
# File 'lib/jazzy/stats.rb', line 59

def doc_coverage
  return 0 if acl_included == 0

  (100 * documented) / acl_included
end

#remove_undocumented(decl) ⇒ Object



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

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

#reportObject



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/jazzy/stats.rb', line 39

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
end

#undocumentedObject



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

def undocumented
  undocumented_decls.count
end