[Catalyst-dev] Re: jshirley/jrockway
Jonathan T. Rockway
jon at jrock.us
Sun Jul 29 00:29:56 GMT 2007
> > > Earlier, Evan Carroll patched:
> > > @@ -35,9 +35,12 @@ In your app configuration (example in L<YAML>):
> > > method: SMTP
> > > # mailer_args is passed directly into Email::Send
> > > mailer_args:
> > > - - Host: smtp.example.com
> > > - - username: username
> > > - - password: password
> > > + - Host
> > > + - smtp.example.com
> > > + - username
> > > + - mySMPTUsername
> > > + - password
> > > + - mySMTPPassword
> > jrockway responded:
> >
> > Why are you doing this?
>
> Because Email::Send does not take an Array of HashRefs it just takes
> an Array. And this is a wrapper around Email::Send and pod and code
> says these are ->{mailer_args}
Good catch... but what you really want is:
# mailer_args is passed directly into Email::Send
mailer_args:
Host: smtp.example.com
username: username
password: password
That's both readable and flattens to:
- Host
- smtp.example.com
- ...
V::Email needs to flatten the hashref that YAML gives it:
my $hashref = $config->{mailer_args};
whatever_func(%$hashref);
But it would need to do that with your config syntax too:
my $arrayref = $config->{mailer_args};
whatever_func(@$array_ref); # same as above except for pair ordering
I think the hashref-based method is much cleaner than your proposed
solution. Any thoughts, jshirley?
Regards,
Jonathan Rockway
More information about the Catalyst-dev
mailing list