On 30 Jan 2009, at 08:56, Carl Franks wrote:

2009/1/29 Ash Berlin <ash_cpan@firemirror.com>:
On 29 Jan 2009, at 22:03, Carl Franks wrote:

Is it okay to use $result_source->column_info('name')-
to test whether a column is inflatable / deflatable?
It seems a bit too reliant on internals, to me.

Or should there be a has_inflatable_column('name') method?

(and is that what it should be called? do we really also need a
'has_deflatable_column' too?)

If someone makes a call, I'll write up a patch for it.

There doesn't seem to be a public way to determine this, and indeed
accessing anything starting with an _ indicates badness.

First things first - what exactly do you care if a column is
inflated or
In HTML-FormFu-Model-DBIC, I can't just use get/set_column(),
otherwise in/deflators won't get called.
So I've had to document that people can't name fields after DBIC
built-in methods such as 'delete', otherwise when we call $row->$name
it'll trash your db.

What I'd like to do is allow the use of any name, by doing something
like this:

$value = $row->result_source->has_inflated_column
? $row->get_inflated_column( $name )
: $row->get_column( $name );

? $row->set_inflated_column( $name, $value )
: $row->set_column( $name, $value );

I can't just use get/set_inflated_column() for everything, as it
croaks if there's no in/deflator for a column.

And why can't you just do $row->$name() or $row->$name($value) ? (I'm
sure there's a reason, I'm just curious as to what it is.)
Secondly, do you treat relationships as inflated or not?
'fraid I'm not really sure what that means.
I generally just use something like
@rows = $row->$rel;

Well relationships are kind of like inflate columns in that they are
likely to have an integer as the raw value, but get turned into an
object or several.


Search Discussions

Discussion Posts


Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 5 of 9 | next ›
Discussion Overview
groupdbix-class @
categoriesperl, catalyst
postedJan 29, '09 at 10:03p
activeSep 1, '09 at 2:38p



site design / logo © 2021 Grokbase