class MarkdownRubyDocumentation::Summary

Attributes

erb_methods_class[R]
subject[R]

Public Class Methods

new(subject:, erb_methods_class:) click to toggle source
# File lib/markdown_ruby_documentation/summary.rb, line 5
def initialize(subject:, erb_methods_class:)
  @subject           = subject
  @erb_methods_class = erb_methods_class
end

Public Instance Methods

summary() click to toggle source
# File lib/markdown_ruby_documentation/summary.rb, line 14
def summary
  "Descendants: #{descendants_links.join(", ")}" if descendants.present?
end
title() click to toggle source
# File lib/markdown_ruby_documentation/summary.rb, line 10
def title
  [format_class(subject), *ancestors_links].join(" < ")
end

Private Instance Methods

ancestors() click to toggle source
# File lib/markdown_ruby_documentation/summary.rb, line 36
def ancestors
  subject.ancestors.select do |klass| 
    klass.is_a?(Class) && ![BasicObject, Object, subject].include?(klass)
  end.sort_by(&:name)
end
descendants() click to toggle source
# File lib/markdown_ruby_documentation/summary.rb, line 28
def descendants
  @descendants ||= begin
    ObjectSpace.each_object(Class).select do |klass|
      klass.try!(:name) && klass < subject && !(klass.name.to_s.include?("InstanceToClassMethods"))
    end.sort_by(&:name)
  end
end
format_class(klass) click to toggle source
# File lib/markdown_ruby_documentation/summary.rb, line 46
def format_class(klass)
  klass.name.titleize.split("/").last
end