File Coverage

blib/lib/SortKey/Num/similarity.pm
Criterion Covered Total %
statement 11 20 55.0
branch 0 4 0.0
condition n/a
subroutine 4 7 57.1
pod 0 2 0.0
total 15 33 45.4


line stmt bran cond sub pod time code
1             package SortKey::Num::similarity;
2              
3 1     1   403495 use 5.010001;
  1         4  
4 1     1   6 use strict;
  1         3  
  1         37  
5 1     1   6 use warnings;
  1         2  
  1         76  
6              
7 1     1   685 use Text::Levenshtein::XS;
  1         964  
  1         341  
8              
9             our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
10             our $DATE = '2024-05-15'; # DATE
11             our $DIST = 'SortKey-Num-similarity'; # DIST
12             our $VERSION = '0.002'; # VERSION
13              
14             sub meta {
15             return +{
16 0     0 0   v => 1,
17             args => {
18             string => {schema=>'str*', req=>1},
19             ci => {schema => 'bool*'},
20             },
21             };
22             }
23              
24             sub gen_keygen {
25 0     0 0   my %args = @_;
26              
27 0           my $reverse = $args{reverse};
28 0           my $string = $args{string};
29 0           my $lc_string = lc $string;
30 0           my $ci = $args{ci};
31              
32             sub {
33 0 0   0     my $arg = @_ ? shift : $_;
34 0 0         $ci ? Text::Levenshtein::XS::distance($lc_string, lc($arg)) : Text::Levenshtein::XS::distance($string, $arg);
35 0           };
36             }
37              
38             1;
39             # ABSTRACT: Similarity to a reference string as sort key
40              
41             __END__