Re: What's the best approach for translating an attribute upon creation?

2010-02-26 Thread Mark Morgan
Something along the lines of the following should work: package Types; use Moose::Util::TypeConstraints; # note, need a type here, as otherwise coersions won't work if done as a subtype of 'Str' type Types.pcr = where { defined $_ and $_ =~ /^\d+$/ }; coerce Types.pcr = from Str = via {

Re: What's the best approach for translating an attribute upon creation?

2010-02-26 Thread Hans Dieter Pearcey
Excerpts from Steve's message of Fri Feb 26 09:21:05 -0500 2010: I have a class, 'UsageDetail' which takes a CSV phone call record and inserts it into my database. One of the attributes, 'WirelessNumber' has dashes in it, ie: '989-555-1212'. I don't want to store the dashes in the db.

Re: A branch to review: topic/strict-constructor

2010-02-26 Thread Dave Rolsky
On Fri, 26 Feb 2010, Goro Fuji wrote: The strict constructor is enabled by the 'strict_constructor' option of make_immutable: __PACKAGE__-meta-make_immutable(strict_constructor = 1); I really don't think this feature should be tied into immutability. The existing MX module works regardless

Fwd: Re: What's the best approach for translating an attribute upon creation?

2010-02-26 Thread Steve
This method works great! I was very close to getting coercion to work, but somehow my substitution returned '2' every time. Thanks all for the help Steve Something along the lines of the following should work: package Types; use Moose::Util::TypeConstraints; # note, need a type here,

Re: Fwd: Re: What's the best approach for translating an attribute upon creation?

2010-02-26 Thread Hans Dieter Pearcey
Excerpts from Steve's message of Fri Feb 26 09:50:51 -0500 2010: This method works great! I was very close to getting coercion to work, but somehow my substitution returned '2' every time. Thanks all for the help You were doing via { s/-//g } instead of via { s/-//g; $_ }, so you were

Fwd: Fwd: Re: What's the best approach for translating an attribute upon creation?

2010-02-26 Thread Steve
I've moved on to a slightly more complex situation. The same phone call record contains two different date fields. One is a string like 'Jan 21, 2010' (incidentally, this date is repeated for each record, as it represents the end of the billing cycle), which I have successfully converted

Re: What's the best approach for translating an attribute upon creation?

2010-02-26 Thread Steve
I found a solution...I hooked into my already-existing 'around BUILDARGS' and set the attribute to the returned value from '_explodeDate', passing in the two values (call date cycle end date) that I needed to compose a properly typed date. It's not pretty, and I'm sure there are more

Re: Fwd: Fwd: Re: What's the best approach for translating an attribute upon creation?

2010-02-26 Thread Jesse Luehrs
On Fri, Feb 26, 2010 at 12:52:44PM -0500, Steve wrote: I've moved on to a slightly more complex situation. The same phone call record contains two different date fields. One is a string like 'Jan 21, 2010' (incidentally, this date is repeated for each record, as it represents the end

coerce question

2010-02-26 Thread Rolf Schaufelberger
Hi, is there a way to coerce an attribute with the help of other attributes passed to new ? I my class a pass a DBIC schema object and a DBIC::RowObject to new. Now I would like to be able to just pass the id instead of the RowObject and define a coercion like DbObject coerce = from Int,