feat(rules): add the aggressive deadline option to nl and br
This commit is contained in:
1 parent
b80ddbf523
commit
c2384ff7ad
4 files changed
+66
-4
No files matched your search
+13
-2
@@ -11,12 +11,23 @@ import (
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
func Deadline(s rules.Strategy) rules.Rule {
|
||||
// DeadlineOptions configures the Deadline rule.
|
||||
type DeadlineOptions struct {
|
||||
// Aggressive makes the "dentro de"/"em" prefix optional, so "3 dias" matches too.
|
||||
Aggressive bool
|
||||
}
|
||||
|
||||
func Deadline(s rules.Strategy, opts ...DeadlineOptions) rules.Rule {
|
||||
overwrite := s == rules.Override
|
||||
|
||||
prefix := "(dentro\\sde|em)"
|
||||
if len(opts) > 0 && opts[0].Aggressive {
|
||||
prefix += "?"
|
||||
}
|
||||
|
||||
return &rules.F{
|
||||
RegExp: regexp.MustCompile(
|
||||
"(?i)(?:\\W|^)(dentro\\sde|em)\\s*" +
|
||||
"(?i)(?:\\W|^)" + prefix + "\\s*" +
|
||||
"(?:(" + INTEGER_WORDS_PATTERN + "|[0-9]+|(?:\\s*pouc[oa](?:s|)?|algu(?:mas|m|ns)?|mei[oa]?))\\s*" +
|
||||
"(segundos?|min(?:uto)?s?|horas?|dias?|semanas?|mês|meses|anos?)\\s*)" +
|
||||
"(?:\\W|$)"),
|
||||
|
||||
Reference in new issue
Block a user