Moo

 view release on metacpan or  search on metacpan

lib/Moo/Role.pm  view on Meta::CPAN

    Moo::HandleMoose::inject_fake_metaclass_for($new_name);
  }

  my $lvl = 0;
  my $file;
  while ((my $pack, $file) = caller($lvl++)) {
    if ($pack ne __PACKAGE__ && $pack ne 'Role::Tiny' && !$pack->isa($me)) {
      last;
    }
  }
  _set_loaded($new_name, $file || (caller)[1]);

  return $new_name;
}

sub _gen_apply_defaults_for {
  my ($me, $class, @roles) = @_;

  my @attrs = map @{$INFO{$_}{attributes}||[]}, @roles;

  my $con_gen;

lib/Moo/Role.pm  view on Meta::CPAN

      no_install => 1,
      no_defer => 1,
    }
  );
}

sub apply_roles_to_object {
  my ($me, $object, @roles) = @_;
  my $new = $me->SUPER::apply_roles_to_object($object, @roles);
  my $class = ref $new;
  _set_loaded($class, (caller)[1]);

  if (!exists $APPLY_DEFAULTS{$class}) {
    $APPLY_DEFAULTS{$class} = $me->_gen_apply_defaults_for($class, @roles);
  }
  if (my $apply_defaults = $APPLY_DEFAULTS{$class}) {
    local $Carp::Internal{+__PACKAGE__} = 1;
    local $Carp::Internal{$class} = 1;
    $new->$apply_defaults;
  }
  return $new;

lib/oo.pm  view on Meta::CPAN

  exit 0;
}

my $package;
sub import {
  moo() if $0 eq '-';
  $package = $_[1] || 'Class';
  if ($package =~ s/^\+//) {
    _load_module($package);
  }
  my $line = (caller)[2] || 1;
  require Filter::Util::Call;
  my $done;
  Filter::Util::Call::filter_add(sub {
    if (!$done) {
      s{\A}{package $package;\nuse Moo;\n#line $line\n};
      $done = 1;
    }
    return Filter::Util::Call::filter_read();
  });
}



( run in 1.079 second using v1.01-cache-2.11-cpan-a3c8064c92c )