diff options
| -rw-r--r-- | doc/config.ld | 4 | ||||
| -rw-r--r-- | doc/index.html | 74 | ||||
| -rw-r--r-- | src/fuzzel.lua | 20 |
3 files changed, 84 insertions, 14 deletions
diff --git a/doc/config.ld b/doc/config.ld index e6121b8..eed8621 100644 --- a/doc/config.ld +++ b/doc/config.ld @@ -1,8 +1,8 @@ project = 'Fuzzel' description = 'String matching library' full_description = 'A few functions to do fuzzy string matching' -title = 'Penlight Documentation' +title = 'Fuzzel Documentation' dir = 'doc' use_markdown_titles = true -format = 'markdown' +format = 'discount' file = '../src/fuzzel.lua' diff --git a/doc/index.html b/doc/index.html index d2fab8f..55fde7d 100644 --- a/doc/index.html +++ b/doc/index.html @@ -3,7 +3,7 @@ <html> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <head> - <title>Penlight Documentation</title> + <title>Fuzzel Documentation</title> <link rel="stylesheet" href="ldoc.css" type="text/css" /> </head> <body> @@ -112,7 +112,7 @@ <h2><a href="#Fields">Fields</a></h2> <table class="function_list"> <tr> - <td class="name" nowrap><a href="#VERSION">VERSION</a></td> + <td class="name" nowrap><a href="#_VERSION">_VERSION</a></td> <td class="summary">The current version (1.4).</td> </tr> </table> @@ -165,6 +165,10 @@ + <h3>Usage:</h3> + <ul> + <pre class="example">fuzzel.LevenshteinDistance_extended(<span class="string">"juice"</span>,<span class="string">"moose"</span>,<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>)</pre> + </ul> </dd> <dt> @@ -196,6 +200,10 @@ + <h3>Usage:</h3> + <ul> + <pre class="example">fuzzel.LevenshteinDistance(<span class="string">"Flag"</span>,<span class="string">"Brag"</span>)</pre> + </ul> </dd> <dt> @@ -226,6 +234,10 @@ + <h3>Usage:</h3> + <ul> + <pre class="example">fuzzel.LevenshteinRatio(<span class="string">"bling"</span>,<span class="string">"bring"</span>)</pre> + </ul> </dd> <dt> @@ -273,6 +285,10 @@ + <h3>Usage:</h3> + <ul> + <pre class="example">DamerauLevenshteinDistance_extended(<span class="string">"berry"</span>,<span class="string">"bury"</span>,<span class="number">0</span>,<span class="number">1</span>,<span class="number">1</span>,<span class="number">2</span>,<span class="number">1</span>)</pre> + </ul> </dd> <dt> @@ -303,6 +319,10 @@ + <h3>Usage:</h3> + <ul> + <pre class="example">fuzzel.DamerauLevenshteinDistance(<span class="string">"tree"</span>,<span class="string">"trap"</span>)</pre> + </ul> </dd> <dt> @@ -333,6 +353,10 @@ + <h3>Usage:</h3> + <ul> + <pre class="example">fuzzel.DamerauLevenshteinRatio(<span class="string">"pants"</span>,<span class="string">"hands"</span>)</pre> + </ul> </dd> <dt> @@ -364,6 +388,11 @@ + <h3>Usage:</h3> + <ul> + <li><pre class="example">fuzzel.HammingDistance(<span class="string">"one"</span>,<span class="string">"two"</span>)</pre></li> + <li><pre class="example">fuzzel.HammingDistance(<span class="string">"two"</span>,<span class="string">"three"</span>) --Will throw an error, since <span class="string">"two"</span> is <span class="number">3</span> characters long <span class="keyword">while</span> <span class="string">"three"</span> is <span class="number">5</span> characters long!</pre></li> + </ul> </dd> <dt> @@ -394,6 +423,11 @@ + <h3>Usage:</h3> + <ul> + <li><pre class="example">fuzzel.HammingRatio(<span class="string">"four"</span>,<span class="string">"five"</span>)</pre></li> + <li><pre class="example">fuzzel.HammingRatio(<span class="string">"seven"</span>,<span class="string">"ten"</span>) -- Will throw an error, since <span class="string">"seven"</span> is <span class="number">5</span> characters long <span class="keyword">while</span> <span class="string">"ten"</span> is <span class="number">3</span> characters long</pre></li> + </ul> </dd> <dt> @@ -419,6 +453,11 @@ + <h3>Usage:</h3> + <ul> + <li><pre class="example">fuzzel.FuzzyFindDistance(<span class="string">"tap"</span>,<span class="string">"tape"</span>,<span class="string">"strap"</span>,<span class="string">"tab"</span>)</pre></li> + <li><pre class="example">fuzzel.FuzzyFindDistance(<span class="string">"tap"</span>,{<span class="string">"tape"</span>,<span class="string">"strap"</span>,<span class="string">"tab"</span>})</pre></li> + </ul> </dd> <dt> @@ -444,6 +483,11 @@ + <h3>Usage:</h3> + <ul> + <li><pre class="example">fuzzel.FuzzyFindRatio(<span class="string">"light"</span>,{<span class="string">"lit"</span>,<span class="string">"lot"</span>,<span class="string">"lightbulb"</span>})</pre></li> + <li><pre class="example">fuzzel.FuzzyFindRatio(<span class="string">"light"</span>,<span class="string">"lit"</span>,<span class="string">"lot"</span>,<span class="string">"lightbulb"</span>)</pre></li> + </ul> </dd> <dt> @@ -474,6 +518,11 @@ + <h3>Usage:</h3> + <ul> + <li><pre class="example">fuzzel.FuzzySortDistance(<span class="string">"tub"</span>,{<span class="string">"toothpaste"</span>,<span class="string">"stub"</span>,<span class="string">"tube"</span>})</pre></li> + <li><pre class="example">fuzzel.FuzzySortDistance(<span class="string">"tub"</span>,<span class="string">"toothpaste"</span>,<span class="string">"stub"</span>,<span class="string">"tube"</span>)</pre></li> + </ul> </dd> <dt> @@ -504,6 +553,11 @@ + <h3>Usage:</h3> + <ul> + <li><pre class="example">fuzzel.FuzzySortRatio(<span class="string">"can"</span>,{<span class="string">"candle"</span>,<span class="string">"candie"</span>,<span class="string">"canister"</span>})</pre></li> + <li><pre class="example">fuzzel.FuzzySortRatio(<span class="string">"can"</span>,<span class="string">"candle"</span>,<span class="string">"candie"</span>,<span class="string">"canister"</span>)</pre></li> + </ul> </dd> <dt> @@ -534,6 +588,11 @@ + <h3>Usage:</h3> + <ul> + <li><pre class="example">fuzzel.FuzzyAutocompleteDistance(<span class="string">"brow"</span>,{<span class="string">"brown"</span>,<span class="string">"brownie"</span>,<span class="string">"high-brow"</span>})</pre></li> + <li><pre class="example">fuzzel.FuzzyAutocompleteDistance(<span class="string">"brow"</span>,<span class="string">"brown"</span>,<span class="string">"brownie"</span>,<span class="string">"high-brow"</span>)</pre></li> + </ul> </dd> <dt> @@ -564,6 +623,11 @@ + <h3>Usage:</h3> + <ul> + <li><pre class="example">fuzzel.FuzzyAutocompleteRatio(<span class="string">"egg"</span>,{<span class="string">"eggman"</span>,<span class="string">"excelent"</span>,<span class="string">"excaliber"</span>})</pre></li> + <li><pre class="example">fuzzel.FuzzyAutocompleteRatio(<span class="string">"egg"</span>,<span class="string">"eggman"</span>,<span class="string">"excelent"</span>,<span class="string">"excaliber"</span>)</pre></li> + </ul> </dd> </dl> @@ -571,8 +635,8 @@ <dl class="function"> <dt> - <a name = "VERSION"></a> - <strong>VERSION</strong> + <a name = "_VERSION"></a> + <strong>_VERSION</strong> </dt> <dd> The current version (1.4). @@ -591,7 +655,7 @@ </div> <!-- id="main" --> <div id="about"> <i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.3</a></i> -<i style="float:right;">Last updated 2016-06-27 18:24:14 </i> +<i style="float:right;">Last updated 2016-06-27 19:11:33 </i> </div> <!-- id="about" --> </div> <!-- id="container" --> </body> diff --git a/src/fuzzel.lua b/src/fuzzel.lua index 5a65514..f258acf 100644 --- a/src/fuzzel.lua +++ b/src/fuzzel.lua @@ -106,7 +106,7 @@ local function genericDistance( stringa, stringb, addcost, subcost, delcost, ... end --- The current version (1.4). -fuzzel.VERSION = "1.4" +fuzzel._VERSION = "1.4" --- Finds edit distance between two strings with custom costs. -- The levenshtein distance is the minimum number of additions, deletions, and substitutions that are needed to turn one string into another. This methods allows custom costs for addition, deletion, and substitution. @@ -117,6 +117,7 @@ fuzzel.VERSION = "1.4" -- @number subcost the custom cost to subtitute one character for another -- @number delcost the custom cost to delete one character -- @return the distance from the first string to the second (which will always be the same as the distance from the second string to the first) +-- @usage fuzzel.LevenshteinDistance_extended("juice","moose",1,2,3) fuzzel[LevenshteinDistance_extended] = function(stringa, stringb, addcost, subcost, delcost) return genericDistance(stringa, stringb, addcost, subcost, delcost) end @@ -128,6 +129,7 @@ fuzzel.ld_e = fuzzel[LevenshteinDistance_extended] -- @string str1 the first string -- @string str2 the second string -- @return the distance between the two input strings +-- @usage fuzzel.LevenshteinDistance("Flag","Brag") fuzzel[LevenshteinDistance] = function(stringa,stringb) return fuzzel.ld_e(stringa,stringb,1,1,1) end @@ -138,6 +140,7 @@ fuzzel.ld = fuzzel[LevenshteinDistance] -- @string str1 the first string, and the string to use for the ratio -- @string str2 the second string -- @return the distance between the two strings divided by the length of the first string +-- @usage fuzzel.LevenshteinRatio("bling","bring") fuzzel[LevenshteinRatio] = function(stringa,stringb) return fuzzel.ld(stringa,stringb) / strlen(stringa) end @@ -153,6 +156,7 @@ fuzzel.lr = fuzzel[LevenshteinRatio] -- @number delcost the cost of removeing a character -- @number trncost the cost of transposeing two adjacent characters. -- @return the edit distance between the two strings +-- @usage DamerauLevenshteinDistance_extended("berry","bury",0,1,1,2,1) fuzzel[DamerauLevenshteinDistance_extended] = function(stringa, stringb, addcost, subcost, delcost, trncost) return genericDistance(stringa,stringb,addcost,subcost,delcost,tru,trncost) end @@ -163,6 +167,7 @@ fuzzel.dld_e = fuzzel[DamerauLevenshteinDistance_extended] -- @string str1 the fist string -- @string str2 the second string -- @return the minimum number of additions, deletions, substitutions, or transpositions to turn str1 into str2 +-- @usage fuzzel.DamerauLevenshteinDistance("tree","trap") fuzzel[DamerauLevenshteinDistance] = function(stringa,stringb) return fuzzel.dld_e(stringa,stringb,1,1,1,1) end @@ -173,6 +178,7 @@ fuzzel.dld = fuzzel[DamerauLevenshteinDistance] -- @string str1 the fist string, and number to use for ratio -- @string str2 the second string -- @return the Damerau-Levenshtein distance divided by the length of the first string. +-- @usage fuzzel.DamerauLevenshteinRatio("pants","hands") fuzzel[DamerauLevenshteinRatio] = function(stringa,stringb) return fuzzel.dld(stringa,stringb) / strlen(stringa) end @@ -184,8 +190,8 @@ fuzzel.dlr = fuzzel[DamerauLevenshteinRatio] -- @string str1 the first string -- @string str2 the second string -- @return the edit distance between str1 and str2 --- @useage fuzzel.HammingDistance("one","two") --- @useage fuzzel.HammingDistance("two","three") --Will throw an error, since "two" is 3 characters long while "three" is 5 characters long! +-- @usage fuzzel.HammingDistance("one","two") +-- @usage fuzzel.HammingDistance("two","three") --Will throw an error, since "two" is 3 characters long while "three" is 5 characters long! fuzzel[HammingDistance] = function(stringa,stringb) local len,dist = strlen(stringa),0 asrt(len == strlen(stringb), ha.." "..di.." cannot be calculated on two strings of different lengths:\"" .. stringa .. "\" \"" .. stringb .. "\"") @@ -201,8 +207,8 @@ fuzzel.hd = fuzzel[HammingDistance] -- @string str1 the first string, and string to use for the ratio -- @string str2 the second string -- @return the edit distance between the two strings --- @useage fuzzel.HammingRatio("four","five") --- @useage fuzzel.HammingRatio("seven","ten") -- Will throw an error, since "seven" is 5 characters long while "ten" is 3 characters long +-- @usage fuzzel.HammingRatio("four","five") +-- @usage fuzzel.HammingRatio("seven","ten") -- Will throw an error, since "seven" is 5 characters long while "ten" is 3 characters long fuzzel[HammingRatio] = function(stringa,stringb) return fuzzel.hd(stringa,stringb) / strlen(stringa) end @@ -242,8 +248,8 @@ fuzzel.ffd = fuzzel[FuzzyFindDistance] -- @function FuzzyFindRatio -- @string str the string to compare to -- @param ... A 1-indexed array of strings, or a list of strings to campare str against --- @useage fuzzel.FuzzyFindRatio("light",{"lit","lot","lightbulb"}) --- @useage fuzzel.FuzzyFindRatio("light","lit","lot","lightbulb") +-- @usage fuzzel.FuzzyFindRatio("light",{"lit","lot","lightbulb"}) +-- @usage fuzzel.FuzzyFindRatio("light","lit","lot","lightbulb") fuzzel[FuzzyFindRatio] = function(str,...) return upack{FuzzySearch(str,fuzzel.dlr,...)} end |
