1 package Common
::RDBO
::Helpers
;
6 use Rose
::Object
::MixIn
();
7 our @ISA = qw(Rose::Object::MixIn);
9 use Hash
::Merge
'merge';
11 __PACKAGE__
->export_tag(
12 all
=> [ qw
/ get_prev_objects get_next_objects get_master_object / ] );
14 sub get_prev_objects
{
18 my $manager = delete $args{ manager
} || $self->meta->class . '::Manager';
20 my $column = delete $args{ column
};
21 warn 'no column' and return unless $column;
23 warn 'column does not exist' and return
24 unless grep { $_ eq $column } @
{ $self->meta->column_names };
27 query
=> [ $column => { lt => $self->$column } ],
28 sort_by
=> "$column DESC",
32 return $manager->get_objects( object_class
=> $self->meta->class, %$cond );
35 sub get_next_objects
{
39 my $manager = delete $args{ manager
} || $self->meta->class . '::Manager';
41 my $column = delete $args{ column
};
42 warn 'no column' and return unless $column;
44 warn 'column does not exist' and return
45 unless grep { $_ eq $column } @
{ $self->meta->column_names };
48 query
=> [ $column => { gt => $self->$column } ],
49 sort_by
=> "$column ASC",
53 return $manager->get_objects( object_class
=> $self->meta->class, %$cond );
56 sub get_master_object
{
59 if ( $self->can( 'type' ) ) {
60 my $type = $self->type;
65 #grep { $_->type eq 'many to one' } $self->meta->relationships;
68 #my $master = $rel->name;
70 #return $self->$master;