class Falkor::Yard::Documentation

Constants

FILE_GLOB

Attributes

source_dir[RW]
yardoc_file[RW]

Public Class Methods

new(source_dir, yardoc_file = ".yardoc") click to toggle source
# File lib/falkor/yard/documentation.rb, line 15
def initialize(source_dir, yardoc_file = ".yardoc")
  @source_dir = source_dir
  @yardoc_file = yardoc_file
end

Public Instance Methods

generate() click to toggle source
# File lib/falkor/yard/documentation.rb, line 20
def generate
  in_source_dir do
    with_yardoc_file do
      YARD::Registry.lock_for_writing do
        report_progress(:parse_files, files.size, &Proc.new)
        YARD::Registry.save(true)
      end
    end
  end

  yardoc_file
end

Private Instance Methods

files() click to toggle source
# File lib/falkor/yard/documentation.rb, line 37
def files
  @files ||=
    FILE_GLOB.map do |path|
      path = "#{path}/**/*.{rb,c,cc,cxx,cpp}" if File.directory?(path)
      path = Dir[path].sort_by { |d| [d.length, d] } if path.include?("*")

      path
    end.flatten.select { |p| File.file?(p) }
end
in_source_dir() { || ... } click to toggle source
# File lib/falkor/yard/documentation.rb, line 47
def in_source_dir
  Dir.chdir(source_dir) { yield }
end
parse_files() { |count, description| ... } click to toggle source
# File lib/falkor/yard/documentation.rb, line 60
def parse_files
  Parser.new(nil, files).parse do |count, description|
    yield count, description
  end
end
with_yardoc_file() { || ... } click to toggle source
# File lib/falkor/yard/documentation.rb, line 51
def with_yardoc_file
  YARD::Registry.clear
  YARD::Logger.instance.io = IO.new(IO.sysopen("/dev/null", "w+"))
  YARD::Registry.yardoc_file = yardoc_file
  yield
  YARD::Registry.yardoc_file = nil
  YARD::Logger.instance.io = STDOUT
end