fuzzyurl v1.0.1 Fuzzyurl.Match
Link to this section Summary
Functions
From a list of Fuzzyurl masks, returns the list index of the one which
best matches url. Returns nil if none of masks match
Returns 0 for wildcard match, 1 for exact match, or nil otherwise
Returns an integer representing how closely mask (which may have
wildcards) resembles url (which may not), or nil in the
case of a conflict
Returns a Fuzzyurl struct containing values representing how well different
parts of mask and url match. Values are integer; higher values indicate
closer matches
Returns true if mask (which may contain wildcards) matches url
(which may not), or false otherwise
Link to this section Functions
From a list of Fuzzyurl masks, returns the list index of the one which
best matches url. Returns nil if none of masks match.
iex> masks = [Fuzzyurl.mask(path: "/foo/*"), Fuzzyurl.mask(path: "/foo/bar"), Fuzzyurl.mask]
iex> Fuzzyurl.Match.best_match_index(masks, Fuzzyurl.from_string("http://exmaple.com/foo/bar"))
1
Returns 0 for wildcard match, 1 for exact match, or nil otherwise.
Wildcard language:
* matches anything
foo/* matches "foo/" and "foo/bar/baz" but not "foo"
foo/** matches "foo/" and "foo/bar/baz" and "foo"
*.example.com matches "api.v1.example.com" but not "example.com"
**.example.com matches "api.v1.example.com" and "example.com"
Any other form is treated as a literal match.
match(
%Fuzzyurl{
fragment: term(),
hostname: term(),
password: term(),
path: term(),
port: term(),
protocol: term(),
query: term(),
username: term()
},
%Fuzzyurl{
fragment: term(),
hostname: term(),
password: term(),
path: term(),
port: term(),
protocol: term(),
query: term(),
username: term()
}
) :: non_neg_integer() | nil
Returns an integer representing how closely mask (which may have
wildcards) resembles url (which may not), or nil in the
case of a conflict.
match_scores(
%Fuzzyurl{
fragment: term(),
hostname: term(),
password: term(),
path: term(),
port: term(),
protocol: term(),
query: term(),
username: term()
},
%Fuzzyurl{
fragment: term(),
hostname: term(),
password: term(),
path: term(),
port: term(),
protocol: term(),
query: term(),
username: term()
}
) :: %Fuzzyurl{
fragment: term(),
hostname: term(),
password: term(),
path: term(),
port: term(),
protocol: term(),
query: term(),
username: term()
}
Returns a Fuzzyurl struct containing values representing how well different
parts of mask and url match. Values are integer; higher values indicate
closer matches.
matches?(
%Fuzzyurl{
fragment: term(),
hostname: term(),
password: term(),
path: term(),
port: term(),
protocol: term(),
query: term(),
username: term()
},
%Fuzzyurl{
fragment: term(),
hostname: term(),
password: term(),
path: term(),
port: term(),
protocol: term(),
query: term(),
username: term()
}
) :: boolean()
Returns true if mask (which may contain wildcards) matches url
(which may not), or false otherwise.