Browse Source

Bug 11479: Remove experimental given/when keywords

Replace constructs using given and when by if/else
feature now generates compilation warnings in 5.18
and is liable to change behaviour.

This patch:

* replaces the construct with if/else
* reformats the if branching using perltidy
  to remove the now redundant indent

To test:

[1] Verify that prove -v t/db_dependent/MarcModificationTemplates.t
    passes.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
3.16.x
Colin Campbell 11 years ago
committed by Galen Charlton
parent
commit
11faf9fde8
  1. 90
      C4/MarcModificationTemplates.pm

90
C4/MarcModificationTemplates.pm

@ -547,49 +547,59 @@ sub ModifyRecordWithTemplate {
);
my $do = 1;
if ( $conditional ) {
for ( $conditional_comparison ) {
when ( /^exists$/ ) {
my $exists = field_exists( $record, $conditional_field, $conditional_subfield );
$do = $conditional eq 'if'
? $exists
: not $exists;
}
when ( /^not_exists$/ ) {
my $exists = field_exists( $record, $conditional_field, $conditional_subfield );
$do = $conditional eq 'if'
? not $exists
: $exists;
}
when ( /^equals$/ ) {
my $equals = field_equals( $record, $conditional_value, $conditional_field, $conditional_subfield, $conditional_regex );
$do = $conditional eq 'if'
? $equals
: not $equals;
}
when ( /^not_equals$/ ) {
my $equals = field_equals( $record, $conditional_value, $conditional_field, $conditional_subfield, $conditional_regex );
$do = $conditional eq 'if'
? not $equals
: $equals;
}
if ($conditional) {
if ( $conditional_comparison eq 'exists' ) {
my $exists = field_exists( $record, $conditional_field,
$conditional_subfield );
$do =
$conditional eq 'if'
? $exists
: not $exists;
}
elsif ( $conditional_comparison eq 'not_exists' ) {
my $exists = field_exists( $record, $conditional_field,
$conditional_subfield );
$do =
$conditional eq 'if'
? not $exists
: $exists;
}
elsif ( $conditional_comparison eq 'equals' ) {
my $equals = field_equals(
$record, $conditional_value,
$conditional_field, $conditional_subfield,
$conditional_regex
);
$do =
$conditional eq 'if'
? $equals
: not $equals;
}
elsif ( $conditional_comparison eq 'not_equals' ) {
my $equals = field_equals(
$record, $conditional_value,
$conditional_field, $conditional_subfield,
$conditional_regex
);
$do =
$conditional eq 'if'
? not $equals
: $equals;
}
}
if ( $do ) {
for ( $action ) {
when ( /^copy_field$/ ) {
copy_field( @params );
}
when ( /^update_field$/ ) {
update_field( @params );
}
when ( /^move_field$/ ) {
move_field( @params );
}
when ( /^delete_field$/ ) {
delete_field( @params );
}
if ($do) {
if ( $action eq 'copy_field' ) {
copy_field(@params);
}
elsif ( $action eq 'update_field' ) {
update_field(@params);
}
elsif ( $action eq 'move_field' ) {
move_field(@params);
}
elsif ( $action eq 'delete_field' ) {
delete_field(@params);
}
}

Loading…
Cancel
Save