From c76af5edee2b6b692fbd9c08d61962c74f660eef Mon Sep 17 00:00:00 2001
From: Marco Mariani <marco.mariani@nexedi.com>
Date: Mon, 23 Dec 2013 11:31:09 +0100
Subject: [PATCH] custom keys: respect naming conventions

---
 src/queries/core/simplequery.js         | 66 ++++++++++++-------------
 test/queries/key-schema.tests.js        | 40 +++++++--------
 test/queries/key-typechecks.tests.js    | 12 ++---
 test/queries/keys.tests.js              | 62 +++++++++++------------
 test/queries/localstorage-keys.tests.js |  8 +--
 5 files changed, 94 insertions(+), 94 deletions(-)

diff --git a/src/queries/core/simplequery.js b/src/queries/core/simplequery.js
index d2a581f..302e2eb 100644
--- a/src/queries/core/simplequery.js
+++ b/src/queries/core/simplequery.js
@@ -10,17 +10,17 @@ var checkKeySchema = function (key_schema) {
       throw new TypeError("SimpleQuery().create(): " +
                           "key_schema is not of type 'object'");
     }
-    // keys is mandatory
-    if (key_schema.keys === undefined) {
+    // key_set is mandatory
+    if (key_schema.key_set === undefined) {
       throw new TypeError("SimpleQuery().create(): " +
-                          "key_schema has no 'keys' property");
+                          "key_schema has no 'key_set' property");
     }
     for (prop in key_schema) {
       if (key_schema.hasOwnProperty(prop)) {
         switch (prop) {
-        case 'keys':
-        case 'types':
-        case 'comparators':
+        case 'key_set':
+        case 'cast_lookup':
+        case 'match_lookup':
           break;
         default:
           throw new TypeError("SimpleQuery().create(): " +
@@ -83,16 +83,16 @@ inherits(SimpleQuery, Query);
 var checkKey = function (key) {
   var prop;
 
-  if (key.readFrom === undefined) {
-    throw new TypeError("Custom key is missing the readFrom property");
+  if (key.read_from === undefined) {
+    throw new TypeError("Custom key is missing the read_from property");
   }
 
   for (prop in key) {
     if (key.hasOwnProperty(prop)) {
       switch (prop) {
-      case 'readFrom':
-      case 'castTo':
-      case 'defaultMatch':
+      case 'read_from':
+      case 'cast_to':
+      case 'default_match':
         break;
       default:
         throw new TypeError("Custom key has unknown property '" +
@@ -108,50 +108,50 @@ var checkKey = function (key) {
  */
 SimpleQuery.prototype.match = function (item, wildcard_character) {
   var object_value = null,
-    defaultMatch = null,
-    castTo = null,
+    default_match = null,
+    cast_to = null,
     matchMethod = null,
     value = null,
     key = this.key;
 
   matchMethod = this[this.operator];
 
-  if (this._key_schema.keys && this._key_schema.keys[key] !== undefined) {
-    key = this._key_schema.keys[key];
+  if (this._key_schema.key_set && this._key_schema.key_set[key] !== undefined) {
+    key = this._key_schema.key_set[key];
   }
 
   if (typeof key === 'object') {
     checkKey(key);
-    object_value = item[key.readFrom];
+    object_value = item[key.read_from];
 
-    // defaultMatch overrides the default '=' operator
-    defaultMatch = key.defaultMatch;
+    // default_match overrides the default '=' operator
+    default_match = key.default_match;
 
-    // defaultMatch can be a string
-    if (typeof defaultMatch === 'string') {
-      // XXX raise error if defaultMatch not in comparators
-      defaultMatch = this._key_schema.comparators[defaultMatch];
+    // default_match can be a string
+    if (typeof default_match === 'string') {
+      // XXX raise error if default_match not in match_lookup
+      default_match = this._key_schema.match_lookup[default_match];
     }
 
-    // defaultMatch overrides the default '=' operator
-    matchMethod = (defaultMatch || matchMethod);
+    // default_match overrides the default '=' operator
+    matchMethod = (default_match || matchMethod);
 
-    // but an explicit operator: key overrides DefaultMatch
+    // but an explicit operator: key overrides default_match
     if (this._spec && this._spec.operator) {
       matchMethod = this[this.operator];
     }
 
     value = this.value;
-    castTo = key.castTo;
-    if (castTo) {
-      // castTo can be a string
-      if (typeof castTo === 'string') {
-        // XXX raise error if castTo not in types
-        castTo = this._key_schema.types[castTo];
+    cast_to = key.cast_to;
+    if (cast_to) {
+      // cast_to can be a string
+      if (typeof cast_to === 'string') {
+        // XXX raise error if cast_to not in cast_lookup
+        cast_to = this._key_schema.cast_lookup[cast_to];
       }
 
-      value = castTo(value);
-      object_value = castTo(object_value);
+      value = cast_to(value);
+      object_value = cast_to(object_value);
     }
   } else {
     object_value = item[key];
diff --git a/test/queries/key-schema.tests.js b/test/queries/key-schema.tests.js
index 2126119..24ebbfc 100644
--- a/test/queries/key-schema.tests.js
+++ b/test/queries/key-schema.tests.js
@@ -25,7 +25,7 @@
 
   /*jslint unparam: true*/
   var key_schema = {
-    types: {
+    cast_lookup: {
       dateType: function (obj) {
         if (Object.prototype.toString.call(obj) === '[object Date]') {
           // no need to clone
@@ -35,7 +35,7 @@
       }
     },
 
-    comparators: {
+    match_lookup: {
       sameDay: function (a, b) {
         return (
           (a.getFullYear() === b.getFullYear()) &&
@@ -55,32 +55,32 @@
       equalState: translationEqualityMatcher({'ouvert': 'open'})
     },
 
-    keys: {
+    key_set: {
       case_insensitive_identifier: {
-        readFrom: 'identifier',
-        defaultMatch: function (object_value, value, wildcard_character) {
+        read_from: 'identifier',
+        default_match: function (object_value, value, wildcard_character) {
           // XXX do this with a regexp and wildcard support
           return (object_value.toLowerCase() === value.toLowerCase());
         }
       },
       date_day: {
-        readFrom: 'date',
-        castTo: 'dateType',
-        defaultMatch: 'sameDay'
+        read_from: 'date',
+        cast_to: 'dateType',
+        default_match: 'sameDay'
       },
       date_month: {
-        readFrom: 'date',
-        castTo: 'dateType',
-        defaultMatch: 'sameMonth'
+        read_from: 'date',
+        cast_to: 'dateType',
+        default_match: 'sameMonth'
       },
       date_year: {
-        readFrom: 'date',
-        castTo: 'dateType',
-        defaultMatch: 'sameYear'
+        read_from: 'date',
+        cast_to: 'dateType',
+        default_match: 'sameYear'
       },
       translated_state: {
-        readFrom: 'state',
-        defaultMatch: 'equalState'
+        read_from: 'state',
+        default_match: 'equalState'
       }
     }
   };
@@ -176,7 +176,7 @@
         {'identifier': '100', 'number': '100'}
       ];
     }, key_schema = {
-      types: {
+      cast_lookup: {
         intType: function (value) {
           if (typeof value === 'string') {
             return parseInt(value, 10);
@@ -184,10 +184,10 @@
           return value;
         }
       },
-      keys: {
+      key_set: {
         number: {
-          readFrom: 'number',
-          castTo: 'intType'
+          read_from: 'number',
+          cast_to: 'intType'
         }
       }
     };
diff --git a/test/queries/key-typechecks.tests.js b/test/queries/key-typechecks.tests.js
index 63e657f..cef2233 100644
--- a/test/queries/key-typechecks.tests.js
+++ b/test/queries/key-typechecks.tests.js
@@ -60,16 +60,16 @@
 
     try {
       complex_queries.QueryFactory.create({type: 'simple'}, {});
-      ok(false, 'key_schema.keys is not checked');
+      ok(false, 'key_schema.key_set is not checked');
     } catch (e) {
       equal(e.name, 'TypeError', 'wrong exception type');
       equal(e.message,
-         "SimpleQuery().create(): key_schema has no 'keys' property",
+         "SimpleQuery().create(): key_schema has no 'key_set' property",
          'wrong exception message');
     }
 
     try {
-      complex_queries.QueryFactory.create({type: 'simple'}, {keys: {}, foobar: {}});
+      complex_queries.QueryFactory.create({type: 'simple'}, {key_set: {}, foobar: {}});
       ok(false, 'unknown key_schema properties are not checked');
     } catch (e) {
       equal(e.name, 'TypeError', 'wrong exception type');
@@ -92,11 +92,11 @@
         key: {},
         value: 'a'
       }).exec(doc_list);
-      ok(false, 'key.readFrom is not checked');
+      ok(false, 'key.read_from is not checked');
     } catch (e) {
       equal(e.name, 'TypeError', 'wrong exception type');
       equal(e.message,
-         "Custom key is missing the readFrom property",
+         "Custom key is missing the read_from property",
          'wrong exception message');
     }
 
@@ -104,7 +104,7 @@
       complex_queries.QueryFactory.create({
         type: 'simple',
         key: {
-          readFrom: 'identifier',
+          read_from: 'identifier',
           foobar: ''
         },
         value: 'a'
diff --git a/test/queries/keys.tests.js b/test/queries/keys.tests.js
index 1b6ebef..0a7ab8c 100644
--- a/test/queries/keys.tests.js
+++ b/test/queries/keys.tests.js
@@ -17,7 +17,7 @@
 
   module('Custom Key Queries');
 
-  test('Simple Key with readFrom', function () {
+  test('Simple Key with read_from', function () {
     /*jslint unparam: true*/
     var doc_list, docList = function () {
       return [
@@ -27,11 +27,11 @@
       ];
     }, keys = {
       title: {
-        readFrom: 'identifier'
+        read_from: 'identifier'
       },
       case_insensitive_identifier: {
-        readFrom: 'identifier',
-        defaultMatch: function (object_value, value, wildcard_character) {
+        read_from: 'identifier',
+        default_match: function (object_value, value, wildcard_character) {
           return (object_value.toLowerCase() === value.toLowerCase());
         }
       }
@@ -103,19 +103,19 @@
 
     var keys = {
       day: {
-        readFrom: 'date',
-        castTo: dateCast,
-        defaultMatch: sameDay
+        read_from: 'date',
+        cast_to: dateCast,
+        default_match: sameDay
       },
       month: {
-        readFrom: 'date',
-        castTo: dateCast,
-        defaultMatch: sameMonth
+        read_from: 'date',
+        cast_to: dateCast,
+        default_match: sameMonth
       },
       year: {
-        readFrom: 'date',
-        castTo: dateCast,
-        defaultMatch: sameYear
+        read_from: 'date',
+        cast_to: dateCast,
+        default_match: sameYear
       }
     };
 
@@ -173,8 +173,8 @@
       ];
     }, keys = {
       mydate: {
-        readFrom: 'date',
-        castTo: dateCast
+        read_from: 'date',
+        cast_to: dateCast
       }
     };
 
@@ -250,7 +250,7 @@
   });
 
 
-  test('Simple Key with both defaultMatch and operator attributes', function () {
+  test('Simple Key with both default_match and operator attributes', function () {
     var doc_list, docList = function () {
       return [
         {'identifier': '1', 'date': '2013-01-01'},
@@ -259,9 +259,9 @@
       ];
     }, keys = {
       mydate: {
-        readFrom: 'date',
-        castTo: dateCast,
-        defaultMatch: function alwaysTrue() { return true; }
+        read_from: 'date',
+        cast_to: dateCast,
+        default_match: function alwaysTrue() { return true; }
       }
     };
 
@@ -315,8 +315,8 @@
     complex_queries.QueryFactory.create({
       type: 'simple',
       key: {
-        readFrom: 'number',
-        castTo: intType
+        read_from: 'number',
+        cast_to: intType
       },
       operator: '>',
       value: '19'
@@ -329,8 +329,8 @@
     complex_queries.QueryFactory.create({
       type: 'simple',
       key: {
-        readFrom: 'number',
-        castTo: intType
+        read_from: 'number',
+        cast_to: intType
       },
       operator: '<',
       value: '19'
@@ -346,16 +346,16 @@
       query_list: [{
         type: 'simple',
         key: {
-          readFrom: 'number',
-          castTo: intType
+          read_from: 'number',
+          cast_to: intType
         },
         operator: '<',
         value: '19'
       }, {
         type: 'simple',
         key: {
-          readFrom: 'number',
-          castTo: intType
+          read_from: 'number',
+          cast_to: intType
         },
         operator: '=',
         value: '19'
@@ -387,8 +387,8 @@
       equalState = translationEqualityMatcher({'ouvert': 'open'}),
       keys = {
         translated_state: {
-          readFrom: 'state',
-          defaultMatch: equalState
+          read_from: 'state',
+          default_match: equalState
         }
       };
 
@@ -479,8 +479,8 @@
       ];
     }, keys = {
       identifier: {
-        readFrom: 'identifier',
-        defaultMatch: function (object_value, value, wildcard_character) {
+        read_from: 'identifier',
+        default_match: function (object_value, value, wildcard_character) {
           // XXX todo: regexp & support wildcard_character
           return accentFold(object_value) === accentFold(value);
         }
diff --git a/test/queries/localstorage-keys.tests.js b/test/queries/localstorage-keys.tests.js
index 02f248a..c631fdf 100644
--- a/test/queries/localstorage-keys.tests.js
+++ b/test/queries/localstorage-keys.tests.js
@@ -70,7 +70,7 @@
 
 
   var key_schema = {
-    types: {
+    cast_lookup: {
       dateType: function (obj) {
         if (Object.prototype.toString.call(obj) === '[object Date]') {
           // no need to clone
@@ -79,10 +79,10 @@
         return new Date(obj);
       }
     },
-    keys: {
+    key_set: {
       mydate: {
-        readFrom: 'date',
-        castTo: 'dateType'
+        read_from: 'date',
+        cast_to: 'dateType'
       }
     }
   };
-- 
2.30.9