Class: YARD::CLI::Stats

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet-strings/yard.rb

Overview

Monkey patch the stats object to return statistics for our objects. This is the recommended way to add custom stats.

Instance Method Summary collapse

Instance Method Details

#output(name, data, undoc = nil) ⇒ Object



111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/puppet-strings/yard.rb', line 111

def output(name, data, undoc = nil)
  # Monkey patch output to accommodate our larger header widths
  @total += data if data.is_a?(Integer) && undoc
  @undocumented += undoc if undoc.is_a?(Integer)
  data =
    if undoc
      "#{data} (#{undoc} undocumented)"
    else
      data.to_s
    end
  log.puts("#{name.ljust(25)} #{data}")
end

#stats_for_puppet_classesObject



73
74
75
# File 'lib/puppet-strings/yard.rb', line 73

def stats_for_puppet_classes
  output 'Puppet Classes', *type_statistics_all(:puppet_class)
end

#stats_for_puppet_data_type_aliasesObject



81
82
83
# File 'lib/puppet-strings/yard.rb', line 81

def stats_for_puppet_data_type_aliases
  output 'Puppet Data Type Aliases', *type_statistics_all(:puppet_data_type_alias)
end

#stats_for_puppet_data_typesObject



77
78
79
# File 'lib/puppet-strings/yard.rb', line 77

def stats_for_puppet_data_types
  output 'Puppet Data Types', *type_statistics_all(:puppet_data_type)
end

#stats_for_puppet_defined_typesObject



85
86
87
# File 'lib/puppet-strings/yard.rb', line 85

def stats_for_puppet_defined_types
  output 'Puppet Defined Types', *type_statistics_all(:puppet_defined_type)
end

#stats_for_puppet_functionsObject



97
98
99
# File 'lib/puppet-strings/yard.rb', line 97

def stats_for_puppet_functions
  output 'Puppet Functions', *type_statistics_all(:puppet_function)
end

#stats_for_puppet_plansObject



105
106
107
108
109
# File 'lib/puppet-strings/yard.rb', line 105

def stats_for_puppet_plans
  return unless PuppetStrings.puppet_5?

  output 'Puppet Plans', *type_statistics_all(:puppet_plan)
end

#stats_for_puppet_providersObject



93
94
95
# File 'lib/puppet-strings/yard.rb', line 93

def stats_for_puppet_providers
  output 'Puppet Providers', *type_statistics_all(:puppet_provider)
end

#stats_for_puppet_tasksObject



101
102
103
# File 'lib/puppet-strings/yard.rb', line 101

def stats_for_puppet_tasks
  output 'Puppet Tasks', *type_statistics_all(:puppet_task)
end

#stats_for_puppet_typesObject



89
90
91
# File 'lib/puppet-strings/yard.rb', line 89

def stats_for_puppet_types
  output 'Puppet Types', *type_statistics_all(:puppet_type)
end

#type_statistics_all(type) ⇒ Object

This differs from the YARD implementation in that it considers a docstring without text but with tags to be undocumented.



126
127
128
129
130
131
# File 'lib/puppet-strings/yard.rb', line 126

def type_statistics_all(type)
  objs = all_objects.select { |m| m.type == type }
  undoc = objs.select { |m| m.docstring.all.empty? }
  @undoc_list |= undoc if @undoc_list
  [objs.size, undoc.size]
end