Data-Bind

 view release on metacpan or  search on metacpan

META.yml  view on Meta::CPAN

name: Data-Bind
no_index: 
  directory: 
    - inc
    - t
requires: 
  Class::Accessor::Fast: 0
  Data::Capture: 0
  Devel::Caller: 0.10
  Devel::LexAlias: 0
  PadWalker: 0
  Test::Exception: 0
  perl: 5.8.0
version: 0.29

Makefile.PL  view on Meta::CPAN

use strict;
use lib '.';
use inc::Module::Install;

name        'Data-Bind';
all_from    'lib/Data/Bind.pm';

requires    'PadWalker';
requires    'Devel::Caller' => '0.10';
requires    'Devel::LexAlias';
requires    'Class::Accessor::Fast';
requires    'Test::Exception';
requires    'Data::Capture';

sign; WriteAll;

lib/Data/Bind.pm  view on Meta::CPAN


sub all_variable_names {
    my %seen; grep { !$seen{$_}++ or die "duplicate variable $_ in signature" } $_[0][0]->all_variable_names;
}

package Data::Bind::Sig;
use base 'Class::Accessor::Fast';
__PACKAGE__->mk_accessors(qw(positional invocant named named_slurpy is_multidimension));
use Carp qw(croak);
use Scalar::Util qw(blessed);
use PadWalker qw(peek_my);

use Data::Capture;

sub bind {
    my ( $self, $args, $lv ) = @_;
    $lv ||= 1;
    $self->finalize_binding( $self->prepare_binding(Data::Capture->new($args)), $lv + 1 );
}

sub prepare_binding {



( run in 0.589 second using v1.01-cache-2.11-cpan-05444aca049 )