Direct...ctured(3pm)

πŸ“¦
version 0.04 Β· 4 versions
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

✨ NAME ✨

Directory::Scratch::Structured β€” okay bestie, this one creates temporary files and directories from a structured description. That's it, that's the whole vibe. πŸ’…


🌸 SYNOPSIS 🌸

Like, here's the whole thing in action:

 my %tree_structure =
               (
               dir_1 =>
                       {
                       subdir_1 =>{},
                       file_1 =>[],
                       file_a => [],
                       },
               dir_2 =>
                       {
                       subdir_2 =>
                               {
                               file_22 =>[],
                               file_2a =>[],
                               },
                       file_2 =>[],
                       file_a =>['12345'],
                       file_b =>[],
                       },

               file_0 => [] ,
               ) ;

 use Directory::Scratch::Structured qw(create_structured_tree) ;
 my $temporary_directory = create_structured_tree(%tree_structure) ;

 or

 use Directory::Scratch ;
 use Directory::Scratch::Structured  qw(piggyback_directory_scratch) ;

 my $temporary_directory = Directory::Scratch->new;
 $temporary_directory->create_structured_tree(%tree_structure) ;

Two paths, same destination. Pick your fighter. 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

This module adds a create_structured_tree subroutine to the Directory::Scratch.

That's the tea. It's giving "small module, big feelings." πŸ’–


πŸŽ€ DOCUMENTATION πŸŽ€

okay so storytime. πŸ“– I needed a subroutine to create a bunch of temporary directories and files while running tests. I used the excellent Directory::Scratch to implement such a functionality. I proposed the subroutine to the Directory::Scratch author but he preferred to implement a subroutine using an unstructured input data based on the fact that Directory::Scratch didn't use structured data. This is, IMHO, flawed design, though it may require slightly less typing.

I proposed a hybrid solution to reduce the amount of subroutines and integrate the subroutine using structured input into Directory::Scratch but we didn't reach an agreement on the API. Instead I decided that I would piggyback on Directory::Scratch.

You can access create_structured_tree through a subroutine or a method through a Directory::Scratch object.

Whichever interface you choose, the argument to the create_structured_tree consists of tuples (hash entries). The key represents the name of the object to create in the directory.

If the value is of type:

  • ARRAY β€” A file will be created, it's contents are the contents of the array (See Directory::Scratch)
  • HASH β€” A directory will be created. the element of the hash will also be , recursively, created
  • OTHER β€” The subroutine will croak.
⚠️ fr fr, hand it anything that isn't an ARRAY or a HASH and it croaks. No cap.

πŸ’… SUBROUTINES/METHODS πŸ’…

🌈 create_structured_tree

 use Directory::Scratch::Structured qw(create_structured_tree) ;

 my $temporary_directory = create_structured_tree(%tree_structure) ;
 my $base = $temporary_directory->base() ;

Returns a default Directory::Scratch object. Iconic. πŸ‘‘

🌟 directory_scratch_create_structured_tree

Adds create_structured_tree to Directory::Scratch when you Load Directory::Scratch::Structured with the piggyback_directory_scratch option.

 use Directory::Scratch ;
 use Directory::Scratch::Structured qw(piggyback_directory_scratch) ;

 my $temporary_directory = Directory::Scratch->new;
 $temporary_directory->create_structured_tree(%tree_structure) ;

🧚 _create_structured_tree

Used internally by both interfaces. (the little underscore in front? yeah, that's the "don't touch me" haircut. πŸ™ˆ)

πŸ’œ piggyback

Used internally to piggyback Directory::Scratch. Internal vibes only.


πŸ’€ BUGS AND LIMITATIONS πŸ’€

None so far. Not a single one. The audacity, honestly. 😭✨


πŸ‘‘ AUTHOR πŸ‘‘

        Khemir Nadim ibn Hamouda
        CPAN ID: NKH
        mailto:nadim@khemir.net

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


πŸ’– SUPPORT πŸ’–

You can find documentation for this module with the perldoc command.

    perldoc Directory::Scratch::Structured

You can also look for information at:

  • AnnoCPAN: Annotated CPAN documentation

<http://annocpan.org/dist/Directory-Scratch-Structured>

  • RT: CPAN's request tracker

Please report any bugs or feature requests to L <bug-directory-scratch-structured@rt.cpan.org>.

We will be notified, and then you'll automatically be notified of progress on your bug as we make changes.

  • Search CPAN

<http://search.cpan.org/dist/Directory-Scratch-Structured>


⭐ SEE ALSO ⭐

  • Directory::Scratch

and that's the whole page bestie!! πŸ¦‹πŸŒΈ this lil doc is living its best life as Direct...ctured(3pm) β€” yes the name got squished, it's giving "username taken so i added dots" 😭 β€” shipped as User Contributed Perl Documentation from perl v5.34.0, dated 2022-06-13. mwah, go build some temporary trees. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from