Mojo-DB-Results-Role-MoreMethods
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
t/hashify.t
t/hashify_collect.t
t/one.t
t/one_array.t
t/one_by_name.t
t/one_c.t
t/one_c_by_name.t
t/one_hash.t
t/one_struct.t
t/struct_or_die.t
t/transform_validate.t
lib/Mojo/DB/Results/Role/MoreMethods.pm view on Meta::CPAN
my ($collection, $get_keys, $get_value, $flatten) = shift->_parse_transform_options({flatten_allowed => 1}, @_);
return $collection->with_roles('+Transform')->collect_by({flatten => $flatten}, $get_keys, $get_value);
}
sub _parse_transform_options {
my $self = shift;
my $private_options = shift;
my $options = ref $_[0] eq 'HASH' ? shift : {};
my ($key, $key_ref) = _parse_and_validate_transform_key(shift);
my ($value, $value_is_column, $value_ref) = _parse_and_validate_transform_value(@_);
my ($type, $flatten) = _parse_and_validate_transform_options($private_options, $options);
# if user will not access the rows and the type won't be used, default rows to arrays for speed
if (($value_is_column or $flatten) and $key_ref ne 'CODE' and $value_ref ne 'CODE') {
if ($type and $type ne 'array') {
Carp::cluck 'Useless type option provided. array will be used for performance.';
}
$type = 'array';
} elsif (not $type) {
$type = 'hash';
}
t/transform_validate.t view on Meta::CPAN
my ($db, $drop_table_sql, $create_table_sql, $role, $methods, $options) = @_;
for my $method (@$methods) {
note "Testing method $method";
$db->query($drop_table_sql);
$db->query($create_table_sql);
$db->insert(people => {name => 'Bob', age => 23, favorite_food => 'Pizza'});
test_useless_options_warning($db, $role, $method);
test_validate_transform_options($db, $role, $method);
for my $option (@$options) {
note "Testing method $method and option " . dumper $option;
test_method($db, $role, $method, $option ? $option : ());
}
}
}
sub test_useless_options_warning {
my ($db, $role, $method) = @_;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.572 second using v1.00-cache-2.02-grep-82fe00e-cpan-24a475fd873 )