added cleanup method to script runner
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 18 Jul 2006 01:42:48 +0000 (01:42 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 18 Jul 2006 01:42:48 +0000 (01:42 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@5056 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Circ/ScriptBuilder.pm
Open-ILS/src/perlmods/OpenILS/Utils/PermitHold.pm
Open-ILS/src/perlmods/OpenILS/Utils/ScriptRunner.pm

index 1c9c42e..135f943 100644 (file)
@@ -18,7 +18,6 @@ my $ORG_TREE;
 my @ORG_LIST;
 
 
-
 # -----------------------------------------------------------------------
 # Possible Args:
 #  copy
@@ -85,9 +84,7 @@ sub build_runner {
 
        $runner->insert("$evt.$_", $ctx->{_direct}->{$_}, 1) for keys %{$ctx->{_direct}};
 
-       $ctx->{runner} = $runner;
-
-       insert_org_methods( $editor, $ctx );
+       insert_org_methods( $editor, $runner );
 
        return $runner;
 }
@@ -256,8 +253,7 @@ sub flatten_org_tree {
 
 
 sub insert_org_methods {
-       my ( $editor, $ctx ) = @_;
-       my $runner = $ctx->{runner};
+       my ( $editor, $runner ) = @_;
 
        if(!$ORG_TREE) {
                $ORG_TREE = $editor->search_actor_org_unit(
@@ -276,16 +272,17 @@ sub insert_org_methods {
        my $r = $runner;
        weaken($r);
 
-       $runner->insert(__OILS_FUNC_isOrgDescendent  => 
+       $r->insert(__OILS_FUNC_isOrgDescendent  => 
                sub {
                        my( $write_key, $sname, $id ) = @_;
                        my ($parent)    = grep { $_->shortname eq $sname } @ORG_LIST;
                        my ($child)             = grep { $_->id == $id } @ORG_LIST;
                        my $val = is_org_descendent( $parent, $child );
-                       $r->insert($write_key, $val);
+                       $r->insert($write_key, $val, 1);
                        return $val;
                }
        );
+
 }
 
 
index 871cdf5..b44a5a4 100644 (file)
@@ -36,9 +36,10 @@ sub permit_copy_hold {
        $logger->debug("Running permit_copy_hold on copy " . $$params{copy}->id);
 
        load_scripts($runner);
-       my $result = $runner->run or throw OpenSRF::EX::ERROR ("Hold Copy Permit Script Died: $@");
+       my $result = $runner->run or 
+               throw OpenSRF::EX::ERROR ("Hold Copy Permit Script Died: $@");
 
-       $runner->context->destroy;
+       $runner->cleanup;
 
        # --------------------------------------------------------------
        # Extract and uniquify the event list
index d8abc26..c8e1d93 100644 (file)
@@ -11,6 +11,17 @@ use vars qw/%_paths $__json_js/;
 
 { local $/ = undef; $__json_js = <DATA>; }
 
+sub DESTROY {
+       my $self = shift;
+       $logger->info("script_runner destroying self: $self");
+}
+
+sub cleanup {
+       my $runner = shift;
+       $runner->context->destroy;
+       delete($$runner{$_}) for (keys %$runner);
+}
+
 sub new {
        my $class = shift;
        my %params = @_;