The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# ============================================================================
package Text::Phonetic::DoubleMetaphone;
# ============================================================================
use utf8;

use Moo;
extends qw(Text::Phonetic);

__PACKAGE__->meta->make_immutable;

our $VERSION = $Text::Phonetic::VERSION;

sub _predicates {
    return 'Text::DoubleMetaphone';
}

sub _do_compare {
    my ($self,$result1,$result2) = @_;

    return 50 
       if Text::Phonetic::_compare_list($result1,$result2);	

    return 0;
}

sub _do_encode {
    my ($self,$string) = @_;
    
    my($code1, $code2) = Text::DoubleMetaphone::double_metaphone($string);
    return [$code1,$code2];
}

1;

=encoding utf8

=pod

=head1 NAME

Text::Phonetic::DoubleMetaphone - DoubleMetaphone algorithm

=head1 DESCRIPTION

The Double Metaphone search algorithm is a phonetic algorithm written by 
Lawrence Philips and is the second generation of his Metaphone algorithm.
(Wikipedia, 2007)

The Result is always an array ref containing two (mostly, but not always)
identical elements.

This module is a thin wrapper around L<Text::DoubleMetaphone>.

=head1 AUTHOR

    Maroš Kollár
    CPAN ID: MAROS
    maros [at] k-1.com
    http://www.k-1.com

=head1 COPYRIGHT

Text::Phonetic::DoubleMetaphone is Copyright (c) 2006,2007 Maroš. Kollár.
All rights reserved.

This program is free software; you can redistribute
it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the
LICENSE file included with this module.

=head1 SEE ALSO

Description of the algorithm can be found at 
L<http://en.wikipedia.org/wiki/Double_Metaphone>

L<Text::DoubleMetaphone>

=cut