use Scalar::Util ();
use Module::Runtime qw(use_module);
use Moo;
+use namespace::clean;
our $VERSION = '1.72';
}
has renderer_class => (
- is => 'rw', lazy => 1, builder => '_build_renderer_class',
+ is => 'rw', lazy => 1, clearer => 1, builder => 1,
trigger => sub { shift->clear_renderer },
);
+after clear_renderer_class => sub { shift->clear_renderer };
+
sub _build_renderer_class {
+ my ($self) = @_;
+ my ($class, @roles) = (
+ $self->_build_base_renderer_class, $self->_build_renderer_roles
+ );
+ return $class unless @roles;
+ return use_module('Moo::Role')->create_class_with_roles($class, @roles);
+}
+
+sub _build_base_renderer_class {
use_module('Data::Query::Renderer::SQL::Naive')
}
+sub _build_renderer_roles { () }
+
sub _converter_args {
my ($self) = @_;
Scalar::Util::weaken($self);