Giter Club home page Giter Club logo

dir-manifest's Introduction

NAME

Dir::Manifest

VERSION

version 0.0.5

SYNOPSIS

use Dir::Manifest ();

my $obj = Dir::Manifest->new(
    {
        manifest_fn => "./t/data/texts/list.txt",
        dir         => "./t/data/texts/texts",
    }
);

# TEST
is (
    scalar(`my-process ...`),
    $obj->text("my-process-output1", {lf => 1,}),
    "Good output of my-process.",
);

DESCRIPTION

Here is the primary use case: you have several long texts (and/or binary blobs) that you wish to load from the code (e.g: for the "want"/expected values of tests) and you wish to conventiently edit them, track them and maintain them. Using Dir::Manifest you can put each in a separate file in a directory, create a manifest file listing all valid filenames/key and then say something like my $text = $dir->text("deal24solution.txt", {lf => 1}). And hopefully it will be done securely and reliably.

NAME

Dir::Manifest - treat a directory and a manifest file as a hash/dictionary of keys to texts or blobs

VERSION

version 0.0.5

METHODS

$self->manifest_fn()

The path to the manifest file.

$self->dir()

The path to the directory containing the texts and blobs as files.

$self->get_keys()

Returns a sorted array reference containing the available keys as strings.

$self->get_obj($key)

Returns the Dir::Manifest::Key object associated with the string $key. Throws an error if $key was not given in the manifest.

my $contents = $self->text("$key", {%OPTS})

Slurps the key using Dir::Manifest::Slurp

my $hash_ref = $obj->texts_dictionary( {slurp_opts => {},} );

Returns a hash reference (a dictionary) containing all keys and their slurped contents as values. 'slurp_opts' is passed to text().

DEDICATION

This code is dedicated to the memory of Jonathan Scott Duff a.k.a PerlJam and perlpilot who passed away some days before the first release of this code. For more about him, see:

MEDIA RECOMMENDATION

kristian vuljar used to have a jamendo track called "Keys" based on Shine 4U by Carmen and Camille. You can find it at http://www.shlomifish.org/Files/files/dirs/kristian-vuljar--keys/ .

SUPPORT

Websites

The following websites have more information about this module, and may be of help to you. As always, in addition to those websites please use your favorite search engine to discover more resources.

Bugs / Feature Requests

Please report any bugs or feature requests by email to bug-dir-manifest at rt.cpan.org, or through the web interface at https://rt.cpan.org/Public/Bug/Report.html?Queue=Dir-Manifest. You will be automatically notified of any progress on the request by the system.

Source Code

The code is open to the world, and available for you to hack on. Please feel free to browse it and play with it, or whatever. If you want to contribute patches, please send me a diff or prod me to pull from your repository :)

https://github.com/shlomif/Dir-Manifest

git clone https://github.com/shlomif/Dir-Manifest.git

AUTHOR

Shlomi Fish [email protected]

BUGS

Please report any bugs or feature requests on the bugtracker website https://github.com/shlomif/dir-manifest/issues

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

COPYRIGHT AND LICENSE

This software is Copyright (c) 2019 by Shlomi Fish.

This is free software, licensed under:

The MIT (X11) License

dir-manifest's People

Contributors

shlomif avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

hakonhagland

dir-manifest's Issues

Add a README

Perhaps in asciidoc format but markdown will also be ok.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.