plugin registration
[scpubgit/Q-Branch.git] / lib / SQL / Abstract / Plugin / ExtraClauses.pm
similarity index 96%
rename from lib/SQL/Abstract/ExtraClauses.pm
rename to lib/SQL/Abstract/Plugin/ExtraClauses.pm
index e1029bc..10d5839 100644 (file)
@@ -1,40 +1,8 @@
-package SQL::Abstract::ExtraClauses;
+package SQL::Abstract::Plugin::ExtraClauses;
 
 use Moo;
 
-has sqla => (
-  is => 'ro', init_arg => undef,
-  handles => [ qw(
-    expand_expr render_aqt join_query_parts
-  ) ],
-);
-
-sub cb {
-  my ($self, $method, @args) = @_;
-  return sub {
-    local $self->{sqla} = shift;
-    $self->$method(@args, @_)
-  };
-}
-
-sub register {
-  my ($self, @pairs) = @_;
-  my $sqla = $self->sqla;
-  while (my ($method, $cases) = splice(@pairs, 0, 2)) {
-    my @cases = @$cases;
-    while (my ($name, $case) = splice(@cases, 0, 2)) {
-      $sqla->$method($name, $self->cb($case));
-    }
-  }
-  return $self;
-}
-
-sub apply_to {
-  my ($self, $sqla) = @_;
-  $self = $self->new unless ref($self);
-  local $self->{sqla} = $sqla;
-  $self->register_extensions($sqla);
-}
+with 'SQL::Abstract::Role::Plugin';
 
 sub register_extensions {
   my ($self, $sqla) = @_;