Sophie

Sophie

distrib > * > cooker > x86_64 > by-pkgid > 9d42b95c49678fbf6eea9770a5b5632d > files > 10

perl-Dist-Zilla-Role-Tempdir-0.10.276.220-2.noarch.rpm

NAME
    Dist::Zilla::Role::Tempdir - Shell Out and collect the result in a DZ
    plug-in.

VERSION
    version 0.01027622

SYNOPSIS
      package #
        Dist::Zilla::Plugin::FooBar;

      use Moose;
      with 'Dist::Zilla::Role::Tempdir';
      with 'Dist::Zilla::Role::FileInjector';
      with 'Dist::Zilla::Role::InstallTool';

      sub setup_installer {
        my ( $self, $arg ) = @_ ;

        my ( @generated_files ) = $self->capture_tempdir(sub{
          system( $somecommand );
        });

        for ( @generated_files ) {
          if( $_->is_new && $_->name =~ qr/someregex/ ){
            $self->add_file( $_->file );
          }
        }
      }

    This role is a convenience role for factoring into other plug-ins to use
    the power of Unix in any plug-in.

    If for whatever reason you need to shell out and run your own app that
    is not Perl ( i.e.: Java ) to go through the code and make
    modifications, produce documentation, etc, then this role is for you.

    Important to note however, this role ONLY deals with getting
    "Dist::Zilla"'s state written out to disk, executing your given
    arbitrary code, and then collecting the results. At no point does it
    attempt to re-inject those changes back into "Dist::Zilla". That is left
    as an exercise to the plug-in developer.

METHODS
  capture_tempdir
    Creates a File::Tempdir and dumps the current state of Dist::Zilla's
    files into it.

    Runs the specified code sub "chdir"'ed into that "tmpdir", and captures
    the changed files.

      my ( @array ) = $self->capture_tempdir(sub{

      });

    Response is an array of "::Tempdir::Item"

       [ bless( { name => 'file/Name/Here' ,
          status => 'O' # O = Original, N = New, M = Modified, D = Deleted
          file   => Dist::Zilla::Role::File object
        }, 'Dist::Zilla::Tempdir::Item' ) , bless ( ... ) ..... ]

    Make sure to look at "Dist::Zilla::Tempdir::Item" for usage.

  digest_for
      my $hash = $self->digest_for( \$content );

    Hashes content and returns the result in b64.

PRIVATE ATTRIBUTES
  _digester
      isa => Digest::base,
      is  => rw,
      lazy_build => 1

    Used for Digesting the contents of files.

PRIVATE METHODS
  _build__digester
    returns an instance of Digest::SHA with 512bit hashes.

SEE ALSO
    *   "Dist::Zilla::Tempdir::Item"

AUTHOR
    Kent Fredric <kentnl@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2010 by Kent Fredric.

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