does CompUnit::Repository::Locallydoes CompUnit::Repository
一个 CompUnit::Repository
实现,由通常用于开发情况的文件系统支持。这是 -I .
/ -I lib
(实际上是 -I file#.
和 -I file#lib
)或 use lib "."
/ use lib "lib"
使用的内容。与 CompUnit::Repository::Installation
不同,这表示一个单一发行版。
方法§
方法候选§
multi method candidates(Str , :, :, :)multi method candidates(CompUnit::DependencySpecification )
返回包含与指定 $name
、auth
、ver
和 api
匹配的模块的所有发行版。
# assuming one is cloned into the zef git repository...my = CompUnit::Repository::FileSystem.new(prefix => );with .candidates("Zef").head ->else
方法文件§
multi method files(Str , :, :, :)multi method files(CompUnit::DependencySpecification )
返回与指定 auth
ver
和 api
匹配,且包含与指定 $name
匹配的非模块文件的所有发行版。
# assuming one is cloned into the zef git repository...my = CompUnit::Repository::FileSystem.new(prefix => );say .files('bin/zef', :ver<419.0+>).head.<name> // "Nada"; # OUTPUT: «Nada»say .files('resources/config.txt', :ver<419.0+>).head.<name> // "Nada"; # OUTPUT: «Nada»say .files('bin/zef', :ver<0.4.0+>).head.<name>; # OUTPUT: «zef»say .files('resources/config.txt', :ver<0.4.0+>).head.<name>; # OUTPUT: «zef»
方法解析§
method resolve(CompUnit::DependencySpecification --> CompUnit)
返回一个 CompUnit
,该 CompUnit
映射到与 $spec
匹配的最高版本发行版,该发行版来自包含与 $spec
匹配的任何版本发行版的存储库链中的第一个存储库。
方法需要§
method need(CompUnit::DependencySpecification ,CompUnit::PrecompilationRepository = self.precomp-repository(),CompUnit::PrecompilationStore : = self!precomp-stores(),--> CompUnit)
加载并返回一个 CompUnit
,该 CompUnit
映射到与 $spec
匹配的最高版本发行版,该发行版来自包含与 $spec
匹配的任何版本发行版的存储库链中的第一个存储库。
方法加载§
method load(IO::Path --> CompUnit)
加载 $file
并返回一个表示它的 CompUnit
对象。
方法已加载§
method loaded(--> Iterable)
返回此存储库已加载的所有 CompUnit
。
方法短 ID§
method short-id()
返回存储库短 ID,对于此存储库,该 ID 为 file
。
属性扩展§
my = CompUnit::RepositoryFileSystem.new(:prefix());say .extensions; # OUTPUT: «[rakumod pm6 pm]»
当 prefix
不包含 META6.json 文件时,存储库将考虑为 Raku 模块的文件扩展名。可以通过设置路径规范中的属性,在包含库路径本身时设置此属性
# Like '-I lib', but only considers .rakumod and .pm6 files as raku modules
raku -I "file#extensions<rakumod pm6>#lib" -e 'use MyModule'