MARC::Detrans::Rule - MARC::Detrans::Rule documentation


MARC-Detrans documentation Contained in the MARC-Detrans distribution.

Index


Code Index:

NAME

Top

MARC::Detrans::Rule

SYNOPSIS

Top

    use MARC::Detrans::Rule;

    my $rule = MARC::Detrans::Rule->new( 
        from    => 'b', 
        to      => 'B',
        escape  => '(B'
    );

DESCRIPTION

Top

It's unlikely that you'll want to use MARC::Detrans::Rule directly since other modules wrap access to it. Each detransliteration rule is represented as a MARC::Detrans::Rule object, which basically provides the Romanized text and the corresponding MARC-8 or UTF-8 text, along with an escape character (for MARC-8) rules.

METHODS

Top

new()

Pass in the from and c<to> parameters which define the original text and what to translate to; these parameters are not limited to single characters. In addition an escape parameter can be passed in to indicate a MARC-8 escape sequence to use. Also a position parameter can be set to initial, medial or final if the rule applies only when the character is found at or within a particular word boundary.

from()

Returns the Romanized text that this rule refers to.

to()

Returns the MARC-8 or UTF-8 text that the corresponding Romanized text should be converted to.

escape()

Returns a MARC-8 character set escape sequence to be used, or undef if the rule is for an UTF-8 mapping.

position()

Returns a position specification for the rule mapping which can be initial, medial, final or the empty string if there is no positional qualification for the rule.

AUTHORS

Top

* Ed Summers <ehs@pobox.com>

MARC-Detrans documentation Contained in the MARC-Detrans distribution.
package MARC::Detrans::Rule;

use strict;
use warnings;
use Carp qw( croak );

sub new {
    my ( $class, %opts ) = @_;
    croak( "must supply 'from' parameter" ) if ! exists( $opts{from} );
    croak( "must supply 'to' parameter" ) if ! exists( $opts{to} );
    $opts{to} =~ s/\^ESC/\x1B/g;
    return bless \%opts, ref($class) || $class;
}

sub from {
    return shift->{from};
}

sub to {
    return shift->{to};
}

sub escape {
    return shift->{escape};
}

sub position {
    my $p = shift->{position};
    return $p if defined($p);
    return ''; 
}

1;