Thread MooseX::Types - Problem mit Subtype und Where-Test (8 answers)
Opened by roooot at 2010-09-22 22:18

roooot
 2010-09-23 13:32
#141501 #141501
User since
2008-03-03
276 Artikel
BenutzerIn
[default_avatar]
Danke Matthias.
Das mit ArrayRef[WWW::Google::Contacts::Type::Email] will nicht ganz, weil er mir verbietet WWW::Google::Contacts::Type::Email einzubinden.
Ich denke ich muss den Typ erst bei Moose bekanntmachen, ähnlich wie die Standard Typen ja mit use MooseX::Types::Moose qw/ArrayRef HashRef Str/; eingebunden werden. Ich erstelle mir also eine neuen Typen und binde diesen dann ein?

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# WWWGoogleContactsTypeEmail
class_type WWWGoogleContactsTypeEmail, {
    class   => 'WWW::Google::Contacts::Type::Email',
};

# GooglePrimaryEmail
subtype GooglePrimaryEmail,
    as      EmailAddress,
    message {
        'validation failed for: '. Dumper $_;
    };
   
    
coerce GooglePrimaryEmail,
    from    ArrayRef[WWWGoogleContactsTypeEmail],
    via     {
        my $p   = (grep { $_->{primary} } @$_)[0];
        $p      = $p ? $p->{value} : @$_->[0]{value};
        # no prim email -> take first address
        return $p;
    };

tuts dann auch.
Viele Grüße :)

View full thread MooseX::Types - Problem mit Subtype und Where-Test