Distribution — META6 데이터를 파일로 연결하는 인터페이스

Distribution — META6 데이터를 파일로 연결하는 인터페이스 (Interface mapping META6 data to files)

Raku 모듈의 배포판(distribution)은 메타데이터와 실제 파일들을 함께 담고 있어요. 이 둘을 API로 연결해주는 공통 규격이 필요한데, 그 역할을 하는 롤이 Distribution이에요.

출처: Raku Documentation — Distribution

본문

Distribution은 META6 데이터를 그것이 나타내는 파일로 매핑해주는 API 접근을 제공하는 객체들을 위한 인터페이스 롤이에요.

role Distribution { }

이 롤을 수행하는 객체는 예를 들어 CompUnit::Repository::Installation이 읽을 수 있어요. 일반적으로 Distribution은 모듈들의 집합과 메타데이터에 대한 읽기 접근을 제공해요. 이 구현은 파일시스템을 기반으로 할 수도 있고(Distribution::Path, Distribution::Hash), tar 파일이나 소켓에서 읽어오는 방식일 수도 있어요.

필수 메서드

메서드 meta

method meta(--> Hash:D) { ... }

메타데이터의 표현을 담은 Hash를 돌려줘요. 실제 META6.json 파일이 존재할 필요는 없고, 그 형식의 표현만 있으면 돼요.

메서드 content

method content($name-path --> IO::Handle:D) { ... }

$name-path가 나타내는 파일에 대한 IO::Handle을 돌려줘요. $name-path는 메타데이터에서 찾을 수 있는 상대 경로예요. 예를 들어 lib/Foo.rakumod이나 resources/foo.txt 같은 경로죠.

더 알아보기 (Learn more)