Module: Amatch::StringMethods

Included in:
String
Defined in:
ext/amatch_ext.c

Instance Method Summary collapse

Instance Method Details

#levenshtein_similar(strings) ⇒ Object

XXX If called on a String, this string is used as a Amatch::DamerauLevenshtein#pattern to match against strings. It returns a DamerauLevenshtein distance metric number between 0.0 for very unsimilar strings and 1.0 for an exact match. strings has to be either a String or an Array of Strings. The returned results is either a Float or an Array of Floats respectively.



1057
1058
1059
1060
1061
# File 'ext/amatch_ext.c', line 1057

static VALUE rb_str_damerau_levenshtein_similar(VALUE self, VALUE strings)
{
    VALUE amatch = rb_DamerauLevenshtein_new(rb_cDamerauLevenshtein, self);
    return rb_DamerauLevenshtein_similar(amatch, strings);
}

#hamming_similar(strings) ⇒ Object

If called on a String, this string is used as a Amatch::Hamming#pattern to match against strings. It returns a Hamming distance metric number between 0.0 for very unsimilar strings and 1.0 for an exact match. strings has to be either a String or an Array of Strings. The returned results is either a Float or an Array of Floats respectively.



1431
1432
1433
1434
1435
# File 'ext/amatch_ext.c', line 1431

static VALUE rb_str_hamming_similar(VALUE self, VALUE strings)
{
    VALUE amatch = rb_Hamming_new(rb_cHamming, self);
    return rb_Hamming_similar(amatch, strings);
}

#jaro_similar(strings) ⇒ Object

If called on a String, this string is used as a Amatch::Jaro#pattern to match against strings. It returns a Jaro metric number between 0.0 for very unsimilar strings and 1.0 for an exact match. strings has to be either a String or an Array of Strings. The returned results is either a Float or an Array of Floats respectively.



1659
1660
1661
1662
1663
# File 'ext/amatch_ext.c', line 1659

static VALUE rb_str_jaro_similar(VALUE self, VALUE strings)
{
    VALUE amatch = rb_Jaro_new(rb_cJaro, self);
    return rb_Jaro_match(amatch, strings);
}

#jarowinkler_similar(strings) ⇒ Object

If called on a String, this string is used as a Amatch::JaroWinkler#pattern to match against strings. It returns a Jaro-Winkler metric number between 0.0 for very unsimilar strings and 1.0 for an exact match. strings has to be either a String or an Array of Strings. The returned results are either a Float or an Array of Floats respectively.



1758
1759
1760
1761
1762
# File 'ext/amatch_ext.c', line 1758

static VALUE rb_str_jarowinkler_similar(VALUE self, VALUE strings)
{
    VALUE amatch = rb_JaroWinkler_new(rb_cJaro, self);
    return rb_JaroWinkler_match(amatch, strings);
}

#levenshtein_similar(strings) ⇒ Object

If called on a String, this string is used as a Amatch::Levenshtein#pattern to match against strings. It returns a Levenshtein distance metric number between 0.0 for very unsimilar strings and 1.0 for an exact match. strings has to be either a String or an Array of Strings. The returned results is either a Float or an Array of Floats respectively.



964
965
966
967
968
# File 'ext/amatch_ext.c', line 964

static VALUE rb_str_levenshtein_similar(VALUE self, VALUE strings)
{
    VALUE amatch = rb_Levenshtein_new(rb_cLevenshtein, self);
    return rb_Levenshtein_similar(amatch, strings);
}

#longest_subsequence_similar(strings) ⇒ Object

If called on a String, this string is used as a Amatch::LongestSubsequence#pattern to match against strings. It returns a longest subsequence distance metric number between 0.0 for very unsimilar strings and 1.0 for an exact match. strings has to be either a String or an Array of Strings. The returned results is either a Float or an Array of Floats respectively.



1507
1508
1509
1510
1511
# File 'ext/amatch_ext.c', line 1507

static VALUE rb_str_longest_subsequence_similar(VALUE self, VALUE strings)
{
    VALUE amatch = rb_LongestSubsequence_new(rb_cLongestSubsequence, self);
    return rb_LongestSubsequence_similar(amatch, strings);
}

#longest_substring_similar(strings) ⇒ Object

If called on a String, this string is used as a Amatch::LongestSubstring#pattern to match against strings. It returns a longest substring distance metric number between 0.0 for very unsimilar strings and 1.0 for an exact match. strings has to be either a String or an Array of Strings. The returned results is either a Float or an Array of Floats respectively.



1585
1586
1587
1588
1589
# File 'ext/amatch_ext.c', line 1585

static VALUE rb_str_longest_substring_similar(VALUE self, VALUE strings)
{
    VALUE amatch = rb_LongestSubstring_new(rb_cLongestSubstring, self);
    return rb_LongestSubstring_similar(amatch, strings);
}

#pair_distance_similar(strings, regexp = nil) ⇒ Object

If called on a String, this string is used as a Amatch::PairDistance#pattern to match against strings using /\s+/ as the tokenizing regular expression. It returns a pair distance metric number between 0.0 for very unsimilar strings and 1.0 for an exact match. strings has to be either a String or an Array of Strings.

The returned results is either a Float or an Array of Floats respectively.



1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
# File 'ext/amatch_ext.c', line 1347

static VALUE rb_str_pair_distance_similar(int argc, VALUE *argv, VALUE self)
{
    VALUE amatch, string, regexp = Qnil;
    rb_scan_args(argc, argv, "11",  &string, &regexp);
    amatch = rb_PairDistance_new(rb_cPairDistance, self);
    if (NIL_P(regexp)) {
        return rb_PairDistance_match(1, &string, amatch);
    } else {
        VALUE *args = alloca(2);
        args[0] = string;
        args[1] = regexp;
        return rb_PairDistance_match(2, args, amatch);
    }
}