Local

=title class Zef::Distribution::Local
=subtitle A local file system Distribution implementation

Synopsis

    use Zef::Distribution::Local;
    my $dist = Zef::Distribution::Local.new($*CWD);
    # Show the meta data
    say $dist.meta.raku;
    # Output the content of the first item in provides
    with $dist.meta<provides>.hash.values.head -> $name-path {
        say $dist.content($name-path).open.slurp;
    }
    # Output if the $dist contains a namespace matching Foo::Bar:ver<1>
    say $dist.contains-spec("Foo::Bar:ver<1>");

Description

A Distribution implementation that is used to represent locally downloaded and extracted distributions.

Methods

method new

method new(IO() $path)

Create a Zef::Distribution::Local from a local distribution via its META6.json file. If $path is a directory then it will assume there is a META6.json file it can use. If $path is a file it will assume it a json file containing meta data (formatted like META6.json).

method meta

method meta(--> Hash:D)

Returns the meta data that represents the distribution.

method content

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

Returns an unopened IO::Handle that can be used to get the content of the $name-path, where $name-path is a value of the distributions provides e.g. lib/Foo.rakumod, $dist.content($dist.meta<provides>{"Foo"}).

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.