+sub presenter {
+ my ($class_or_self) = @_;
+
+ if (ref $class_or_self) {
+ my $class = ref $class_or_self;
+ $class =~ s{^SL::DB::}{SL::Presenter::};
+ return SL::DB::Helper::Presenter->new($class, $class_or_self);
+ } else {
+ $class_or_self =~ s{^SL::DB::}{SL::Presenter::};
+ return $class_or_self;
+ }
+}
+
+sub as_debug_info {
+ my ($self) = @_;
+
+ return {
+ map {
+ my $column_name = $_->name;
+ my $value = $self->$column_name;
+ $value = !defined($value) ? undef : "${value}";
+ ($_ => $value)
+ } $self->meta->columns
+ };
+}
+