Object
# File rbs-2.1.0/lib/rbs/annotate/rdoc_source.rb, line 53
def class_docs(typename)
if classes = find_class(typename)
classes.map {|klass| klass.comment }
end
end
# File rbs-2.1.0/lib/rbs/annotate/rdoc_source.rb, line 45
def docs
if ds = yield
unless ds.empty?
ds.map(&:comment)
end
end
end
# File rbs-2.1.0/lib/rbs/annotate/rdoc_source.rb, line 106
def find_attribute(typename, name, singleton:)
if klasss = find_class(typename)
# @type var attrs: Array[RDoc::Attr]
attrs = []
klasss.each do |kls|
attrs.concat(kls.attributes.select {|attr| attr.singleton == singleton && attr.name == name.to_s })
end
attrs unless attrs.empty?
end
end
# File rbs-2.1.0/lib/rbs/annotate/rdoc_source.rb, line 31
def find_class(typename)
classes = []
@stores.each do |store|
if klass = store.find_class_or_module(typename.relative!.to_s)
classes << klass
end
end
unless classes.empty?
classes
end
end
# File rbs-2.1.0/lib/rbs/annotate/rdoc_source.rb, line 59
def find_const(const_name)
namespace =
if const_name.namespace.empty?
TypeName("::Object")
else
const_name.namespace.to_type_name
end
if classes = find_class(namespace)
# @type var consts: Array[RDoc::Constant]
consts = []
classes.each do |klass|
if const = klass.constants.find {|c| c.name == const_name.name.to_s }
consts << const
end
end
unless consts.empty?
consts
end
end
end
# File rbs-2.1.0/lib/rbs/annotate/rdoc_source.rb, line 83
def find_method(typename, instance_method: nil, singleton_method: nil)
if classes = find_class(typename)
# @type var methods: Array[RDoc::AnyMethod]
methods = []
classes.each do |klass|
klass.method_list.each do |method|
if instance_method && !method.singleton && method.name == instance_method.to_s
methods << method
end
if singleton_method && method.singleton && method.name == singleton_method.to_s
methods << method
end
end
end
unless methods.empty?
methods
end
end
end
# File rbs-2.1.0/lib/rbs/annotate/rdoc_source.rb, line 20
def load
@stores.clear()
RDoc::RI::Paths.each(with_system_dir, with_site_dir, with_home_dir, with_gems_dir ? :latest : false, *extra_dirs.map(&:to_s)) do |path, type|
store = RDoc::Store.new(path, type)
store.load_all
@stores << store
end
end