This commit is contained in:
Kevin R
2020-09-10 00:23:56 +02:00
parent 0c694d86ad
commit e2b638eafb
9 changed files with 177 additions and 30 deletions

View File

@@ -16,14 +16,52 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* Models a rule.
*/
export default class Rule {
private _rule: RegExp
private readonly _rule: RegExp
private _active: boolean
constructor(rule: RegExp) {
this._rule = rule
/**
* Creates a new rule.
*
* @param rule - the simple rule
* @param active - if the rule is active or not
*/
constructor(rule: string, active: boolean = true) {
this._rule = new RegExp(rule, "gi")
this._active = active
}
get value() : RegExp {
get value(): RegExp {
return this._rule
}
get isActive(): boolean {
return this._active
}
/**
* Activates the rule.
*/
public activate() {
this._active = true
}
/**
* Deactivates the rule.
*/
public deactivate() {
this._active = false
}
/**
* Returns this rule as string.
*
* @returns the rule as string
*/
public toString(): string {
return this._rule.source
}
}