Coder Social home page Coder Social logo

gitpan / phaylon-class-cloner Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 0.0 112 KB

Read-only release history for Phaylon-Class-Cloner

Home Page: http://metacpan.org/release/Phaylon-Class-Cloner

License: GNU General Public License v2.0

Perl 100.00%

phaylon-class-cloner's Introduction

NAME
    Phaylon::Class::Cloner - Experimental Customizable Cloning Device

SYNOPSIS
      use Phaylon::Class::Cloner;

      #  that's what I needed
      my $cloner = Phaylon::Class::Cloner->new ({
  
          CODE => sub { 
              my ( $self, $coderef ) = @_;
              return $coderef;
          },
      });

      #  cloning something
      my $cloned = $cloner->clone( $structure );

DESCRIPTION
    I had problems with cloning of structures that contain coderefs. I
    didn't need to clone coderefs, just array and hash references. This
    module enables one to define custom specific and default cloning
    functionalities.

PUBLIC METHODS
  new( *options hashref* )
    Creates a new cloning object. Here's a quick example to show what can be
    passed:

      my $cloner = Phaylon::Class::Cloner->new ({

          #  if the module finds a coderef
          CODE => sub { ... },

          #  module ran into an object
          MyClass => sub {
              my ( $self, $object ) = @_;
              return $object->some_cloning_mechanism;
          },

          #  what to do for non-refs. default is just to 
          #  return the value
          '' => sub { ... },

          #  if nothing's found for this type. preset to use
          #  Storage::dclone()
          ':default' => sub { ... },
      });

  clone( *data* )
    Dispatcher for cloning functionality.

INTERNAL METHODS
  _clone_default
    Preset default cloning. Uses Storage's "dclone"

  _clone_plain_scalar
    Cloning for non-reference scalars. Defaults to return the value.

  _clone_HASH
    Default for hash references. Clones first level with redispatching
    values to "clone".

  _clone_ARRAY
    Same as "_clone_HASH" just for arrays.

REQUIRES
    Carp, Storable

SEE ALSO
    Storable

NAMESPACE
    Due to the specific and experimental nature of this module, it's trying
    not to waste namespaces and therefore lies under "Phaylon::".

LICENSE
    This module is free software. It may be used, redistributed and/or
    modified under the same terms as Perl itself.

AUTHOR AND COPYRIGHT
    Copyright (c) 2005: Robert Sedlacek "[email protected]"

phaylon-class-cloner's People

Contributors

phaylon avatar

Watchers

 avatar  avatar  avatar

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.