From 57a2c8e09b842c8854f0985e2accae2fcd650da0 Mon Sep 17 00:00:00 2001 From: Matteo Collina Date: Sun, 8 Dec 2013 14:58:21 +0100 Subject: [PATCH] Moved matcher function to utilities. --- lib/joinstream.js | 21 +-------------------- lib/sortjoinstream.js | 34 ++++++++-------------------------- lib/utilities.js | 25 ++++++++++++++++++++++++- 3 files changed, 33 insertions(+), 47 deletions(-) diff --git a/lib/joinstream.js b/lib/joinstream.js index 65ee324..477bd0c 100644 --- a/lib/joinstream.js +++ b/lib/joinstream.js @@ -5,7 +5,7 @@ var Transform = require('./streamwrapper').Transform , queryMask = utilities.queryMask , variablesMask = utilities.variablesMask , maskUpdater = utilities.maskUpdater - , matcher; + , matcher = utilities.matcher; function JoinStream(options) { if (!(this instanceof JoinStream)) { @@ -59,22 +59,3 @@ JoinStream.prototype._transform = function(solution, encoding, done) { }; module.exports = JoinStream; - -matcher = function(pattern) { - var variables = variablesMask(pattern); - return function(solution, triple) { - var bindable = Object.keys(variables).every(function(key) { - var variable = variables[key]; - return variable.isBindable(solution, triple[key]); - }); - - if (!bindable) { - return false; - } - - return Object.keys(variables).reduce(function(newsolution, key) { - var variable = variables[key]; - return variable.bind(newsolution, triple[key]); - }, solution); - }; -}; diff --git a/lib/sortjoinstream.js b/lib/sortjoinstream.js index 5acb245..21cd608 100644 --- a/lib/sortjoinstream.js +++ b/lib/sortjoinstream.js @@ -1,13 +1,14 @@ var Transform = require('./streamwrapper').Transform , Variable = require('./variable') - , queryMask = require('./utilities').queryMask - , variablesMask = require('./utilities').variablesMask - , matcher - , materializer = require('./utilities').materializer - , createQuery = require('./utilities').createQuery - , genKey = require('./utilities').genKey - , genKeys = require('./utilities').genKeys; + , utilities = require('./utilities') + , queryMask = utilities.queryMask + , variablesMask = utilities.variablesMask + , matcher = utilities.matcher + , materializer = utilities.materializer + , createQuery = utilities.createQuery + , genKey = utilities.genKey + , genKeys = utilities.genKeys; var counter = 0; @@ -159,22 +160,3 @@ SortJoinStream.prototype._transform = function(solution, encoding, done) { }; module.exports = SortJoinStream; - -matcher = function(pattern) { - var variables = variablesMask(pattern); - return function(solution, triple) { - var bindable = Object.keys(variables).every(function(key) { - var variable = variables[key]; - return variable.isBindable(solution, triple[key]); - }); - - if (!bindable) { - return false; - } - - return Object.keys(variables).reduce(function(newsolution, key) { - var variable = variables[key]; - return variable.bind(newsolution, triple[key]); - }, solution); - }; -}; diff --git a/lib/utilities.js b/lib/utilities.js index dede8b5..0f32293 100644 --- a/lib/utilities.js +++ b/lib/utilities.js @@ -195,8 +195,10 @@ module.exports.materializer = materializer; }; })(); +var variablesMask = module.exports.variablesMask; + function maskUpdater(pattern) { - var variables = module.exports.variablesMask(pattern); + var variables = variablesMask(pattern); return function(solution, mask) { return Object.keys(variables).reduce(function(newMask, key) { var variable = variables[key]; @@ -213,3 +215,24 @@ function maskUpdater(pattern) { } module.exports.maskUpdater = maskUpdater; + +function matcher(pattern) { + var variables = variablesMask(pattern); + return function(solution, triple) { + var bindable = Object.keys(variables).every(function(key) { + var variable = variables[key]; + return variable.isBindable(solution, triple[key]); + }); + + if (!bindable) { + return false; + } + + return Object.keys(variables).reduce(function(newsolution, key) { + var variable = variables[key]; + return variable.bind(newsolution, triple[key]); + }, solution); + }; +} + +module.exports.matcher = matcher;