Sha256: a49d6e8fc922923eed386a9c42d11fd452a17f9d471f2990ba89260f36358c84
Contents?: true
Size: 1.48 KB
Versions: 5
Compression:
Stored size: 1.48 KB
Contents
module Inch module CodeObject module Provider module YARD # Parses the source tree (using YARD) class Parser IGNORE_TYPES = [:macro] # Helper method to parse an instance with the given +args+ # # @see #parse # @return [CodeObject::Provider::YARD] the instance that ran def self.parse(*args) parser = self.new parser.parse(*args) parser end # @param dir [String] directory # @param config [Inch::Config::Codebase] configuration for codebase # @return [void] def parse(dir, config) old_dir = Dir.pwd Dir.chdir dir parse_yard_objects(config.included_files, config.excluded_files) inject_base_dir(dir) Dir.chdir old_dir end # @return [Array<YARD::Object::Base>] def objects @objects ||= parsed_objects.map do |o| YARD::Object.for(o) unless IGNORE_TYPES.include?(o.type) end.compact end private def parse_yard_objects(paths, excluded) ::YARD::Registry.clear ::YARD.parse(paths, excluded) end def inject_base_dir(dir) objects.each do |object| object.base_dir = dir end end def parsed_objects ::YARD::Registry.all end end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems