Skip to content

Commit 5aa592f

Browse files
committed
🔥 replace scout-brain with new mongodb-*-*models
1 parent 91f6c73 commit 5aa592f

File tree

7 files changed

+43
-25
lines changed

7 files changed

+43
-25
lines changed

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,14 @@
6767
"dependencies": {
6868
"ampersand-form-view": "^5.1.1",
6969
"ampersand-input-view": "^5.0.0",
70+
"ampersand-rest-collection": "^5.0.0",
7071
"debug": "^2.2.0",
7172
"electron-squirrel-startup": "^0.1.2",
73+
"mongodb-collection-model": "^0.1.0",
7274
"mongodb-connection-model": "^0.0.3",
75+
"mongodb-database-model": "^0.1.0",
76+
"mongodb-instance-model": "^0.2.0",
77+
"mongodb-ns": "^1.0.0",
7378
"scout-server": "http://bin.mongodb.org/js/scout-server/v0.2.2/scout-server-0.2.2.tar.gz"
7479
},
7580
"devDependencies": {
@@ -130,7 +135,6 @@
130135
"raf": "^3.0.0",
131136
"run-sequence": "^1.1.2",
132137
"run-series": "^1.1.2",
133-
"scout-brain": "http://bin.mongodb.org/js/scout-brain/v0.0.2/scout-brain-0.0.2.tar.gz",
134138
"scout-client": "http://bin.mongodb.org/js/scout-client/v0.1.3/scout-client-0.1.3.tar.gz",
135139
"stream-combiner2": "^1.0.2",
136140
"uuid": "^2.0.1",

src/home/collection.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ var MongoDBCollectionView = View.extend({
9292
var ns = this.parent.ns;
9393
if (!ns) {
9494
this.visible = false;
95-
debug('not updating because parent has no collection namespace.');
95+
debug('No active collection namespace so no schema has been requested yet.');
9696
return;
9797
}
9898
this.visible = true;

src/home/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
var View = require('ampersand-view');
22
var format = require('util').format;
33
var SidebarView = require('../sidebar');
4-
var debug = require('debug')('scout-ui:home');
54
var CollectionView = require('./collection');
65
var app = require('ampersand-app');
6+
var debug = require('debug')('scout:home');
77

88
var HomeView = View.extend({
99
props: {
@@ -32,6 +32,7 @@ var HomeView = View.extend({
3232
this.listenTo(app.instance, 'sync', this.onInstanceFetched);
3333
this.listenTo(app.connection, 'change:name', this.updateTitle);
3434
this.once('change:rendered', this.onRendered);
35+
debug('fetching instance model...');
3536
app.instance.fetch();
3637
},
3738
onInstanceFetched: function() {

src/models/mongodb-collection.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
var MongoDBCollection = require('scout-brain').models.Collection;
2-
var types = require('./types');
1+
var MongoDBCollection = require('mongodb-collection-model');
2+
var toNS = require('mongodb-ns');
33
var scoutClientMixin = require('./scout-client-mixin');
44
var format = require('util').format;
55

66
/**
77
* Metadata for a MongoDB Collection.
8-
* @see https://github.com/10gen/scout/blob/dev/scout-brain/lib/models/collection.js
8+
* @see http://npm.im/mongodb-collection-model
99
*/
10-
module.exports = MongoDBCollection.extend(scoutClientMixin, {
10+
var CollectionModel = MongoDBCollection.extend(scoutClientMixin, {
1111
namespace: 'MongoDBCollection',
1212
session: {
1313
selected: {
@@ -19,14 +19,14 @@ module.exports = MongoDBCollection.extend(scoutClientMixin, {
1919
name: {
2020
deps: ['_id'],
2121
fn: function() {
22-
return types.ns(this._id).collection;
22+
return toNS(this._id).collection;
2323
}
2424
},
2525
specialish: {
2626
name: {
2727
deps: ['_id'],
2828
fn: function() {
29-
return types.ns(this._id).specialish;
29+
return toNS(this._id).specialish;
3030
}
3131
}
3232
},
@@ -43,3 +43,9 @@ module.exports = MongoDBCollection.extend(scoutClientMixin, {
4343
}, true);
4444
}
4545
});
46+
47+
module.exports = CollectionModel;
48+
49+
module.exports.Collection = MongoDBCollection.Collection.extend({
50+
model: CollectionModel
51+
});

src/models/mongodb-instance.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
1-
var MongoDBInstance = require('scout-brain').models.Instance;
2-
var MongoDBCollectionCollection = require('scout-brain').models.CollectionCollection;
1+
var MongoDBInstance = require('mongodb-instance-model');
32
var MongoDBCollection = require('./mongodb-collection');
43
var scoutClientMixin = require('./scout-client-mixin');
54
var selectableMixin = require('./selectable-collection-mixin');
6-
var types = require('./types');
5+
var toNS = require('mongodb-ns');
76

87
/**
98
* A user selectable collection of `MongoDBCollection`'s with `specialish`
109
* collections filtered out.
1110
*/
12-
var MongoDBCollectionOnInstanceCollection = MongoDBCollectionCollection.extend(selectableMixin, {
11+
var MongoDBCollectionOnInstanceCollection = MongoDBCollection.Collection.extend(selectableMixin, {
1312
namespace: 'MongoDBCollectionOnInstanceCollection',
1413
model: MongoDBCollection,
1514
parse: function(res) {
1615
return res.filter(function(d) {
17-
return !types.ns(d._id).specialish;
16+
return !toNS(d._id).specialish;
1817
});
1918
}
2019
});
2120

2221
/**
2322
* Metadata for a MongoDB Instance, such as a `db.hostInfo()`, `db.listDatabases()`,
2423
* `db.buildInfo()`, and more.
25-
* @see https://github.com/10gen/scout/blob/dev/scout-brain/lib/models/instance.js
24+
*
25+
* @see http://npm.im/mongodb-instance-model
2626
*/
2727
module.exports = MongoDBInstance.extend(scoutClientMixin, {
2828
namespace: 'MongoDBInstance',
29-
children: {
29+
collections: {
3030
collections: MongoDBCollectionOnInstanceCollection
3131
},
3232
url: '/instance'
Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
1-
var DocumentCollection = require('scout-brain').models.DocumentCollection;
1+
var State = require('ampersand-state');
2+
var Collection = require('ampersand-rest-collection');
23

3-
module.exports = DocumentCollection.extend({
4+
var DocumentModel = State.extend({
5+
idAttribute: '_id',
6+
extraProperties: 'allow'
7+
});
8+
9+
var DocumentCollection = Collection.extend({
10+
model: DocumentModel,
11+
comparator: '_id'
12+
});
13+
14+
15+
var SampledDocumentCollection = DocumentCollection.extend({
416
/**
517
* Don't do client-side sorting as the cursor on the server-side handles sorting.
618
*/
719
comparator: false,
820
namespace: 'SampledDocumentCollection'
921
});
22+
23+
module.exports = SampledDocumentCollection;

src/models/types.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)