From 0880787d680dbdaab19813d96e1f4c98ad2412e8 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 29 Apr 2015 14:33:37 +0200 Subject: [PATCH] new Index() now accepts a computeHash() callback-ish. --- packages/xo-collection/package.json | 8 ++++---- packages/xo-collection/src/index.js | 7 ++++++- packages/xo-collection/src/index.spec.js | 3 +-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/xo-collection/package.json b/packages/xo-collection/package.json index 943d89917..00c4e9270 100644 --- a/packages/xo-collection/package.json +++ b/packages/xo-collection/package.json @@ -21,10 +21,10 @@ ], "dependencies": { "babel-runtime": "^5", - "lodash.bind": "^3.1.0", - "lodash.callback": "^3.1.1", - "lodash.foreach": "^3.0.2", - "make-error": "^1.0.0" + "lodash.bind": "^3", + "lodash.callback": "^3", + "lodash.foreach": "^3", + "make-error": "^1" }, "devDependencies": { "babel": "^5", diff --git a/packages/xo-collection/src/index.js b/packages/xo-collection/src/index.js index 70ed04c9a..aac48e146 100644 --- a/packages/xo-collection/src/index.js +++ b/packages/xo-collection/src/index.js @@ -1,4 +1,5 @@ import bind from 'lodash.bind' +import callback from 'lodash.callback' import clearObject from './clear-object' import isEmpty from './is-empty' @@ -7,7 +8,11 @@ import NotImplemented from './not-implemented' // =================================================================== export default class Index { - constructor () { + constructor (computeHash) { + if (computeHash) { + this.computeHash = callback(computeHash) + } + this._itemsByHash = Object.create(null) this._keysToHash = Object.create(null) diff --git a/packages/xo-collection/src/index.spec.js b/packages/xo-collection/src/index.spec.js index 1eed303d5..2587f4a19 100644 --- a/packages/xo-collection/src/index.spec.js +++ b/packages/xo-collection/src/index.spec.js @@ -57,8 +57,7 @@ describe('Index', function () { col.add(item) }) - byGroup = new Index() - byGroup.computeHash = item => item.group + byGroup = new Index('group') col.createIndex('byGroup', byGroup)