Directory::Scratch::Structured.3pm

Langue: en

Version: 2010-04-30 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

  Directory::Scratch::Structured - creates temporary files and directories from a structured description
 
 

SYNOPSIS

   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) ;
 
 

DESCRIPTION

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

DOCUMENTATION

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.

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.

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

piggyback

Used internally to piggyback Directory::Scratch.

BUGS AND LIMITATIONS

None so far.

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 <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 <http://search.cpan.org/dist/Directory-Scratch-Structured>

SEE ALSO

Directory::Scratch