Skip to content

Commit 1b49dc1

Browse files
committed
Stable Version 1.0.0-alpha.5.
1 parent 9cd5db5 commit 1b49dc1

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
##### 1.0.0-alpha.5 - 28 November 2014
2+
3+
###### Backwards compatible API changes
4+
- Added isectEmpty, isectNotEmpty, |isectEmpty, and |isectNotEmpty filter operators.
5+
16
##### 1.0.0-alpha.4 - 23 November 2014
27

38
###### Backwards compatible bug fixes

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "js-data-rethinkdb",
33
"description": "RethinkDB adapter for js-data.",
4-
"version": "1.0.0-alpha.4",
4+
"version": "1.0.0-alpha.5",
55
"homepage": "http://www.js-data.io/docs/dsrethinkdbadapter",
66
"repository": {
77
"type": "git",
@@ -42,7 +42,7 @@
4242
"test": "grunt test"
4343
},
4444
"dependencies": {
45-
"js-data": "^1.0.0-alpha.5-1",
45+
"js-data": "^1.0.0-alpha.5-4",
4646
"mout": "0.11.0",
4747
"rethinkdbdash": "^1.15.x"
4848
}

src/index.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ function filterQuery(resourceConfig, params, options) {
7777
subQuery = subQuery ? subQuery.and(row(field).default(null).lt(v)) : row(field).default(null).lt(v);
7878
} else if (op === '<=') {
7979
subQuery = subQuery ? subQuery.and(row(field).default(null).le(v)) : row(field).default(null).le(v);
80+
} else if (op === 'isectEmpty') {
81+
subQuery = subQuery ? subQuery.and(row(field).default([]).setIntersection(r.expr(v).default([])).count().eq(0)) : row(field).default([]).setIntersection(r.expr(v).default([])).count().eq(0);
82+
} else if (op === 'isectNotEmpty') {
83+
subQuery = subQuery ? subQuery.and(row(field).default([]).setIntersection(r.expr(v).default([])).count().ne(0)) : row(field).default([]).setIntersection(r.expr(v).default([])).count().ne(0);
8084
} else if (op === 'in') {
8185
subQuery = subQuery ? subQuery.and(r.expr(v).default(r.expr([])).contains(row(field).default(null))) : r.expr(v).default(r.expr([])).contains(row(field).default(null));
8286
} else if (op === 'notIn') {
@@ -93,6 +97,10 @@ function filterQuery(resourceConfig, params, options) {
9397
subQuery = subQuery ? subQuery.or(row(field).default(null).lt(v)) : row(field).default(null).lt(v);
9498
} else if (op === '|<=') {
9599
subQuery = subQuery ? subQuery.or(row(field).default(null).le(v)) : row(field).default(null).le(v);
100+
} else if (op === '|isectEmpty') {
101+
subQuery = subQuery ? subQuery.or(row(field).default([]).setIntersection(r.expr(v).default([])).count().eq(0)) : row(field).default([]).setIntersection(r.expr(v).default([])).count().eq(0);
102+
} else if (op === '|isectNotEmpty') {
103+
subQuery = subQuery ? subQuery.or(row(field).default([]).setIntersection(r.expr(v).default([])).count().ne(0)) : row(field).default([]).setIntersection(r.expr(v).default([])).count().ne(0);
96104
} else if (op === '|in') {
97105
subQuery = subQuery ? subQuery.or(r.expr(v).default(r.expr([])).contains(row(field).default(null))) : r.expr(v).default(r.expr([])).contains(row(field).default(null));
98106
} else if (op === '|notIn') {

0 commit comments

Comments
 (0)