Email-Abstract

 view release on metacpan or  search on metacpan

lib/Email/Abstract.pm  view on Meta::CPAN


sub new {
  my ($class, $foreign) = @_;

  return $foreign if eval { $foreign->isa($class) };

  $foreign = Email::Simple->new($foreign)
    unless Scalar::Util::blessed($foreign);

  my $adapter = $class->__class_for($foreign); # dies if none available
  return bless [ $foreign, $adapter ] => $class;
}

sub __class_for {
  my ($self, $foreign, $method, $skip_super) = @_;
  $method ||= 'handle';

  my $f_class = ref $foreign;
     $f_class = $foreign unless $f_class;

  return $f_class if ref $foreign and $f_class->isa($self);

t/lib/Test/EmailAbstract.pm  view on Meta::CPAN

use strict;

package Test::EmailAbstract;
use Test::More;

sub new {
  my ($class, $message) = @_;
  my $simple = Email::Simple->new($message);
  bless { simple => $simple } => $class;
}

sub simple { $_[0]->{simple} }

sub _call {
  my ($wrapped, $object, $method, @args) = @_;

  if ($wrapped) {
    return $object->$method(@args);
  } else {

t/unknown.t  view on Meta::CPAN

plan tests => 4;

use_ok("Email::Abstract");

BEGIN {
  package Totally::Unknown::ToAll;
  @Totally::Unknown::ToAll::ISA = ('Totally::Unknown');
}

for my $class ('Totally::Unknown', 'Totally::Unknown::ToAll') {
  my $object = bless [] => $class;
  my $abs = eval { Email::Abstract->new($object); };
  like($@, qr/handle/, "exception on unknown object type");
}

open FILE, '<t/example.msg';
my $message = do { local $/; <FILE>; };
close FILE;

# Let's be generous and start with real CRLF, no matter what stupid thing the
# VCS or archive tools have done to the message.

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 1.332 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )