summaryrefslogtreecommitdiff
path: root/lib/dojo/store/util
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-08-14 19:04:32 +0400
committerAndrew Dolgov <[email protected]>2012-08-14 19:04:32 +0400
commit0181c0110985cfd2659e81c8cc1ef5a2f73bc697 (patch)
treee2250a345481fa63cfcf98d76830338ad7eb9818 /lib/dojo/store/util
parent973c4a649fd8f83ed85004f3365f10f9c24d8349 (diff)
dojo: remove uncompressed files
Diffstat (limited to 'lib/dojo/store/util')
-rw-r--r--lib/dojo/store/util/QueryResults.js.uncompressed.js64
-rw-r--r--lib/dojo/store/util/SimpleQueryEngine.js.uncompressed.js108
2 files changed, 0 insertions, 172 deletions
diff --git a/lib/dojo/store/util/QueryResults.js.uncompressed.js b/lib/dojo/store/util/QueryResults.js.uncompressed.js
deleted file mode 100644
index cd9e1969a..000000000
--- a/lib/dojo/store/util/QueryResults.js.uncompressed.js
+++ /dev/null
@@ -1,64 +0,0 @@
-define("dojo/store/util/QueryResults", ["../../_base/array", "../../_base/lang", "../../_base/Deferred"
-], function(array, lang, Deferred) {
- // module:
- // dojo/store/util/QueryResults
- // summary:
- // The module defines a query results wrapper
-
-var util = lang.getObject("dojo.store.util", true);
-
-util.QueryResults = function(results){
- // summary:
- // A function that wraps the results of a store query with additional
- // methods.
- //
- // description:
- // QueryResults is a basic wrapper that allows for array-like iteration
- // over any kind of returned data from a query. While the simplest store
- // will return a plain array of data, other stores may return deferreds or
- // promises; this wrapper makes sure that *all* results can be treated
- // the same.
- //
- // Additional methods include `forEach`, `filter` and `map`.
- //
- // returns: Object
- // An array-like object that can be used for iterating over.
- //
- // example:
- // Query a store and iterate over the results.
- //
- // | store.query({ prime: true }).forEach(function(item){
- // | // do something
- // | });
-
- if(!results){
- return results;
- }
- // if it is a promise it may be frozen
- if(results.then){
- results = lang.delegate(results);
- }
- function addIterativeMethod(method){
- if(!results[method]){
- results[method] = function(){
- var args = arguments;
- return Deferred.when(results, function(results){
- Array.prototype.unshift.call(args, results);
- return util.QueryResults(array[method].apply(array, args));
- });
- };
- }
- }
- addIterativeMethod("forEach");
- addIterativeMethod("filter");
- addIterativeMethod("map");
- if(!results.total){
- results.total = Deferred.when(results, function(results){
- return results.length;
- });
- }
- return results;
-};
-
-return util.QueryResults;
-});
diff --git a/lib/dojo/store/util/SimpleQueryEngine.js.uncompressed.js b/lib/dojo/store/util/SimpleQueryEngine.js.uncompressed.js
deleted file mode 100644
index 4f241e6f1..000000000
--- a/lib/dojo/store/util/SimpleQueryEngine.js.uncompressed.js
+++ /dev/null
@@ -1,108 +0,0 @@
-define("dojo/store/util/SimpleQueryEngine", ["../../_base/array"], function(arrayUtil) {
- // module:
- // dojo/store/util/SimpleQueryEngine
- // summary:
- // The module defines a simple filtering query engine for object stores.
-
-return function(query, options){
- // summary:
- // Simple query engine that matches using filter functions, named filter
- // functions or objects by name-value on a query object hash
- //
- // description:
- // The SimpleQueryEngine provides a way of getting a QueryResults through
- // the use of a simple object hash as a filter. The hash will be used to
- // match properties on data objects with the corresponding value given. In
- // other words, only exact matches will be returned.
- //
- // This function can be used as a template for more complex query engines;
- // for example, an engine can be created that accepts an object hash that
- // contains filtering functions, or a string that gets evaluated, etc.
- //
- // When creating a new dojo.store, simply set the store's queryEngine
- // field as a reference to this function.
- //
- // query: Object
- // An object hash with fields that may match fields of items in the store.
- // Values in the hash will be compared by normal == operator, but regular expressions
- // or any object that provides a test() method are also supported and can be
- // used to match strings by more complex expressions
- // (and then the regex's or object's test() method will be used to match values).
- //
- // options: dojo.store.util.SimpleQueryEngine.__queryOptions?
- // An object that contains optional information such as sort, start, and count.
- //
- // returns: Function
- // A function that caches the passed query under the field "matches". See any
- // of the "query" methods on dojo.stores.
- //
- // example:
- // Define a store with a reference to this engine, and set up a query method.
- //
- // | var myStore = function(options){
- // | // ...more properties here
- // | this.queryEngine = dojo.store.util.SimpleQueryEngine;
- // | // define our query method
- // | this.query = function(query, options){
- // | return dojo.store.util.QueryResults(this.queryEngine(query, options)(this.data));
- // | };
- // | };
-
- // create our matching query function
- switch(typeof query){
- default:
- throw new Error("Can not query with a " + typeof query);
- case "object": case "undefined":
- var queryObject = query;
- query = function(object){
- for(var key in queryObject){
- var required = queryObject[key];
- if(required && required.test){
- if(!required.test(object[key])){
- return false;
- }
- }else if(required != object[key]){
- return false;
- }
- }
- return true;
- };
- break;
- case "string":
- // named query
- if(!this[query]){
- throw new Error("No filter function " + query + " was found in store");
- }
- query = this[query];
- // fall through
- case "function":
- // fall through
- }
- function execute(array){
- // execute the whole query, first we filter
- var results = arrayUtil.filter(array, query);
- // next we sort
- if(options && options.sort){
- results.sort(function(a, b){
- for(var sort, i=0; sort = options.sort[i]; i++){
- var aValue = a[sort.attribute];
- var bValue = b[sort.attribute];
- if (aValue != bValue) {
- return !!sort.descending == aValue > bValue ? -1 : 1;
- }
- }
- return 0;
- });
- }
- // now we paginate
- if(options && (options.start || options.count)){
- var total = results.length;
- results = results.slice(options.start || 0, (options.start || 0) + (options.count || Infinity));
- results.total = total;
- }
- return results;
- }
- execute.matches = query;
- return execute;
-};
-});