Skip to content
This repository was archived by the owner on Dec 5, 2019. It is now read-only.

Commit 3218e6b

Browse files
committed
Sync - Refactor and Remove Array Pattern Usage - AGJS-287
1 parent 1eac83d commit 3218e6b

5 files changed

+19
-33
lines changed

src/diff-sync/aerogear.diff-sync-client.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ AeroGear.DiffSyncClient = function ( config ) {
3636
var ws,
3737
sendQueue = [],
3838
that = this,
39-
syncEngine = config.syncEngine || new AeroGear.DiffSyncEngine({name: 'jsonPatchEngine'}).engines.jsonPatchEngine;
39+
syncEngine = config.syncEngine || new AeroGear.DiffSyncEngine();
4040

4141
if ( config.serverUrl === undefined ) {
4242
throw new Error( "'config.serverUrl' must be specified" );

src/diff-sync/aerogear.diff-sync-engine.js

+3-16
Original file line numberDiff line numberDiff line change
@@ -18,33 +18,20 @@
1818
@status Experimental
1919
@constructs AeroGear.DiffSyncEngine
2020
@param {Object} config - A configuration
21-
@param {function} [config.type = "jsonPatch"] - the type of sync engine, defaults to jsonPatch
22-
@returns {object} diffSyncClient - The created DiffSyncClient
21+
@param {String} [config.type = "jsonPatch"] - the type of sync engine, defaults to jsonPatch
22+
@returns {Object} diffSyncEngine - The created DiffSyncEngine
2323
*/
2424
AeroGear.DiffSyncEngine = function( config ) {
2525
if ( !( this instanceof AeroGear.DiffSyncEngine ) ) {
2626
return new AeroGear.DiffSyncEngine( config );
2727
}
28-
// Super Constructor
29-
AeroGear.Core.call( this );
3028

3129
this.lib = "DiffSyncEngine";
3230
this.type = config ? config.type || "jsonPatch" : "jsonPatch";
3331

34-
/**
35-
The name used to reference the collection of sync engines instances created from the adapters
36-
@memberOf AeroGear.DiffSyncEngine
37-
@type Object
38-
@default modules
39-
*/
40-
this.collectionName = "engines";
41-
42-
this.add( config );
32+
return new AeroGear.DiffSyncEngine.adapters[ this.type ]();
4333
};
4434

45-
AeroGear.DiffSyncEngine.prototype = AeroGear.Core;
46-
AeroGear.DiffSyncEngine.constructor = AeroGear.DiffSyncEngine;
47-
4835
/**
4936
The adapters object is provided so that adapters can be added to the AeroGear.DiffSyncEngine namespace dynamically and still be accessible to the add method
5037
@augments AeroGear.DiffSyncEngine

tests/unit/sync/diff-sync-client.html

-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
<script type="text/javascript" src="../../vendor/qunit.js"></script>
1010
<script type="text/javascript" src="../../polyfill/bind-polyfill.js"></script>
1111
<script type="text/javascript" src="../../../src/aerogear.core.js"></script>
12-
<script type="text/javascript" src="../../../external/diff-match-patch/diff_match_patch_uncompressed.js"></script>
1312
<script type="text/javascript" src="../../../src/diff-sync/aerogear.diff-sync-engine.js"></script>
1413
<script type="text/javascript" src="../../../src/diff-sync/engine-adapters/json-patch.js"></script>
1514
<script type="text/javascript" src="../../../src/diff-sync/aerogear.diff-sync-client.js"></script>

tests/unit/sync/diff-sync-engine-dmp.js

+8-8
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@
33
module( 'Sync Engine test' );
44

55
test ( 'AeroGear.DiffSyncEngine should support creation without the new keyword', function() {
6-
var engine = AeroGear.DiffSyncEngine({name: 'thing', type: 'diffMatchPatch'}).engines.thing;
6+
var engine = AeroGear.DiffSyncEngine({type: 'diffMatchPatch'});
77
ok( engine , 'Should be no problem not using new when creating' );
88
});
99

1010
test( 'add document', function() {
11-
var engine = AeroGear.DiffSyncEngine({name: 'thing', type: 'diffMatchPatch'}).engines.thing, doc = { id: 1234, clientId: 'client1', content: { name: 'Fletch' } };
11+
var engine = AeroGear.DiffSyncEngine({type: 'diffMatchPatch'}), doc = { id: 1234, clientId: 'client1', content: { name: 'Fletch' } };
1212
engine.addDocument( { id: 1234, clientId: 'client1', content: { name: 'Fletch' } } );
1313
var actualDoc = engine.getDocument( 1234 );
1414
equal( actualDoc.id, 1234, 'Document id should match' );
1515
});
1616

1717
test( 'diff document', function() {
18-
var engine = AeroGear.DiffSyncEngine({name: 'thing', type: 'diffMatchPatch'}).engines.thing;
18+
var engine = AeroGear.DiffSyncEngine({type: 'diffMatchPatch'});
1919
var doc = { id: 1234, clientId: 'client1', content: { name: 'Fletch' } };
2020
engine.addDocument( doc );
2121

@@ -46,7 +46,7 @@
4646
});
4747

4848
test( 'patch document', function() {
49-
var engine = AeroGear.DiffSyncEngine({name: 'thing', type: 'diffMatchPatch'}).engines.thing;
49+
var engine = AeroGear.DiffSyncEngine({type: 'diffMatchPatch'});
5050
var doc = { id: 1234, clientId: 'client1', content: {name: 'Fletch' } };
5151
engine.addDocument( doc );
5252

@@ -63,7 +63,7 @@
6363
});
6464

6565
test( 'patch shadow - content is a String', function() {
66-
var engine = AeroGear.DiffSyncEngine({name: 'thing', type: 'diffMatchPatch'}).engines.thing;
66+
var engine = AeroGear.DiffSyncEngine({type: 'diffMatchPatch'});
6767
var dmp = new diff_match_patch();
6868
var content = 'Fletch';
6969
var doc = { id: 1234, clientId: 'client1', content: content };
@@ -96,7 +96,7 @@
9696
});
9797

9898
test( 'patch shadow - content is an Object', function() {
99-
var engine = AeroGear.DiffSyncEngine({name: 'thing', type: 'diffMatchPatch'}).engines.thing;
99+
var engine = AeroGear.DiffSyncEngine({type: 'diffMatchPatch'});
100100
var dmp = new diff_match_patch();
101101
var content = { name: 'Fletch' };
102102
var doc = { id: 1234, clientId: 'client1', content: content };
@@ -129,7 +129,7 @@
129129
});
130130

131131
test( 'already seen edit should be deleted', function() {
132-
var engine = AeroGear.DiffSyncEngine({name: 'thing', type: 'diffMatchPatch'}).engines.thing;
132+
var engine = AeroGear.DiffSyncEngine({type: 'diffMatchPatch'});
133133
var dmp = new diff_match_patch();
134134
var content = { name: 'Fletch' };
135135
var doc = { id: 1234, clientId: 'client1', content: content };
@@ -160,7 +160,7 @@
160160
});
161161

162162
test( 'restore from backup', function() {
163-
var engine = AeroGear.DiffSyncEngine({name: 'thing', type: 'diffMatchPatch'}).engines.thing;
163+
var engine = AeroGear.DiffSyncEngine({type: 'diffMatchPatch'});
164164
var dmp = new diff_match_patch();
165165
var content = { name: 'Fletch' };
166166
var doc = { id: 1234, clientId: 'client1', content: content };

tests/unit/sync/diff-sync-engine-json-patch.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@
33
module( 'JSON Patch - Sync Engine test' );
44

55
test ( 'JSON Patch should be the default engine', function() {
6-
var engine = AeroGear.DiffSyncEngine({name: 'thing' }).engines.thing;
6+
var engine = AeroGear.DiffSyncEngine();
77
equal( engine instanceof AeroGear.DiffSyncEngine.adapters.jsonPatch , true, 'Should be an instance of jsonpatch adapter' );
88
});
99

1010
test( 'add document', function() {
11-
var engine = AeroGear.DiffSyncEngine({name: 'thing'}).engines.thing, doc = { id: 1234, clientId: 'client1', content: { name: 'Fletch' } };
11+
var engine = AeroGear.DiffSyncEngine(), doc = { id: 1234, clientId: 'client1', content: { name: 'Fletch' } };
1212
engine.addDocument( { id: 1234, clientId: 'client1', content: { name: 'Fletch' } } );
1313
var actualDoc = engine.getDocument( 1234 );
1414
equal( actualDoc.id, 1234, 'Document id should match' );
1515
});
1616

1717
test( 'diff document', function() {
18-
var engine = AeroGear.DiffSyncEngine({name: 'thing'}).engines.thing;
18+
var engine = AeroGear.DiffSyncEngine();
1919
var doc = { id: 1234, clientId: 'client1', content: { name: 'Fletch' } };
2020
engine.addDocument( doc );
2121

@@ -42,7 +42,7 @@
4242
});
4343

4444
test( 'patch document', function() {
45-
var engine = AeroGear.DiffSyncEngine({name: 'thing'}).engines.thing;
45+
var engine = AeroGear.DiffSyncEngine();
4646
var doc = { id: 1234, clientId: 'client1', content: {name: 'Fletch' } };
4747
engine.addDocument( doc );
4848

@@ -58,7 +58,7 @@
5858
});
5959

6060
test( 'patch shadow - content is an Object', function() {
61-
var engine = AeroGear.DiffSyncEngine({name: 'thing'}).engines.thing;
61+
var engine = AeroGear.DiffSyncEngine();
6262
var content = { name: 'Fletch' };
6363
var doc = { id: 1234, clientId: 'client1', content: content };
6464
var shadow;
@@ -89,7 +89,7 @@
8989
});
9090

9191
test( 'already seen edit should be deleted', function() {
92-
var engine = AeroGear.DiffSyncEngine({name: 'thing'}).engines.thing;
92+
var engine = AeroGear.DiffSyncEngine();
9393
var content = { name: 'Fletch' };
9494
var doc = { id: 1234, clientId: 'client1', content: content };
9595
var shadow;
@@ -119,7 +119,7 @@
119119
});
120120

121121
test( 'restore from backup', function() {
122-
var engine = AeroGear.DiffSyncEngine({name: 'thing'}).engines.thing;
122+
var engine = AeroGear.DiffSyncEngine();
123123
var content = { name: 'Fletch' };
124124
var doc = { id: 1234, clientId: 'client1', content: content };
125125
var shadow;

0 commit comments

Comments
 (0)