Skip to content

Commit 9d4acb5

Browse files
author
Cache Hamm
committed
Add rule accessors
1 parent 8880056 commit 9d4acb5

3 files changed

Lines changed: 68 additions & 0 deletions

File tree

docs/rules.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,26 @@ let rule = new Rule(options)
6060

6161
Helper for setting rule conditions. Alternative to passing the `conditions` option to the rule constructor.
6262

63+
### getConditions() -> Object
64+
65+
Retrieves rule condition set by constructor or `setCondition()`
66+
6367
### setEvent(Object event)
6468

6569
Helper for setting rule event. Alternative to passing the `event` option to the rule constructor.
6670

71+
### getEvent() -> Object
72+
73+
Retrieves rule event set by constructor or `setEvent()`
74+
6775
### setPriority(Integer priority = 1)
6876

6977
Helper for setting rule priority. Alternative to passing the `priority` option to the rule constructor.
7078

79+
### getPriority() -> Integer
80+
81+
Retrieves rule priority set by constructor or `setPriority()`
82+
7183
### toJSON(Boolean stringify = true)
7284

7385
Serializes the rule into a JSON string. Often used when persisting rules.

src/rule.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,38 @@ class Rule extends EventEmitter {
9393
return this
9494
}
9595

96+
/**
97+
* returns the event object
98+
* @returns {Object} event
99+
*/
100+
getEvent () {
101+
return this.ruleEvent
102+
}
103+
104+
/**
105+
* returns the priority
106+
* @returns {Number} priority
107+
*/
108+
getPriority () {
109+
return this.priority
110+
}
111+
112+
/**
113+
* returns the event object
114+
* @returns {Object} event
115+
*/
116+
getConditions () {
117+
return this.conditions
118+
}
119+
120+
/**
121+
* returns the engine object
122+
* @returns {Object} engine
123+
*/
124+
getEngine () {
125+
return this.engine
126+
}
127+
96128
/**
97129
* Sets the engine to run the rules under
98130
* @param {object} engine

test/rule.test.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,30 @@ describe('Rule', () => {
119119
})
120120
})
121121

122+
describe('accessors', () => {
123+
it('retrieves event', () => {
124+
const event = { type: 'e', params: { a: 'b' } }
125+
rule.setEvent(event)
126+
expect(rule.getEvent()).to.deep.equal(event)
127+
})
128+
129+
it('retrieves priority', () => {
130+
const priority = 100
131+
rule.setPriority(priority)
132+
expect(rule.getPriority()).to.equal(priority)
133+
})
134+
135+
it('retrieves conditions', () => {
136+
const condition = { all: [] }
137+
rule.setConditions(condition)
138+
expect(rule.getConditions()).to.deep.equal({
139+
all: [],
140+
operator: 'all',
141+
priority: 1
142+
})
143+
})
144+
})
145+
122146
describe('setName', () => {
123147
it('defaults to undefined', () => {
124148
expect(rule.name).to.equal(undefined)

0 commit comments

Comments
 (0)