Merge pull request #2 from PsychoLlama/master

Upgrade for gun@0.3
This commit is contained in:
Jesse Gibson
2016-01-07 14:22:43 -07:00
11 changed files with 81 additions and 39 deletions

3
.gitignore vendored
View File

@@ -4,4 +4,5 @@
/bower_components/
/node_modules/
level/
.DS_Store
.DS_Store
results/

View File

@@ -9,18 +9,19 @@ var Browser;
}
var browser = this;
browser.opt = opt;
opt.done.cb = (function () {
var cb = opt.done.cb;
return function (opt) {
if (cb) {
cb.apply(this, arguments);
}
browser.close();
};
}());
browser.window = window.open('./', browser.opt.id);
browser.window.addEventListener('load', function () {
browser.window.test(browser.opt);
opt.done.cb = (function () {
var cb = opt.done.cb;
return function (opt) {
if (cb) {
cb.apply(this, arguments);
}
browser.close();
};
}());
});
};

View File

@@ -39,15 +39,8 @@
<button id="start">start the test</button>
<button id="close">Close tabs</button>
</div>
<div id="stats">
Status: <span id="test-status">Not Started.</span>
<div>
<h3>Peers:</h3>
<ul id="peers">
</ul>
</div>
</div>
<table id="stats">
</table>
<div class="model" style="display: none;">
<li class="peer">
<span class="id">peer ID</span> is <span class="status">null</span>.
@@ -56,23 +49,23 @@
<p>
Future versions of this test will want to include:
<ul>
<li>Automatically calculate results.</li>
<li>Ability to cause random chaos, like network hiccups.</li>
<li>Collaboratively run across multiple browsers and devices.</li>
<li>Do complex tasks on different data structures.</li>
<li>Multi-peer connections.</li>
<li>Jepsen level awesomeness.</li>
</ul>
Any help on building this out would be appreciated!
</p>
<script src="gun.js"></script>
<script src="polyfill.js"></script>
<script src="statistics.js"></script>
<script src="lib/polyfill.js"></script>
<script src="lib/statistics.js"></script>
<script src="lib/jquery.min.js"></script>
<script src="done.js"></script>
<script src="node_modules/mavis/index.js"></script>
<script src="patch.js"></script>
<script src="lib/patch.js"></script>
<script src="index.js"></script>
<script src="browser.js"></script>
<script src="ui.js"></script>
</body>
</html>

View File

@@ -1,7 +1,5 @@
/*globals Gun, console, patch, finisher, stats */
var test;
test = function (opt) {
function test(opt) {
'use strict';
opt = patch(opt);
@@ -9,14 +7,18 @@ test = function (opt) {
var gun, resetDoneTimer, db, confirmed = {};
resetDoneTimer = finisher();
gun = new Gun(opt.peers);
db = gun.get(opt.key).set();
db = gun.get(opt.key);
function ack(num) {
return function (err, ok) {
if (confirmed[num]) {
if (confirmed[num] && !err) {
return;
}
opt.requests[num - 1].end = Gun.time.is();
var request = opt.requests[num - 1];
request.end = Gun.time.is();
if (err) {
request.errors.push(err);
}
confirmed[num] = true;
opt.progress(opt, num);
resetDoneTimer(db, stats(opt));
@@ -27,10 +29,11 @@ test = function (opt) {
var cb, packet = opt.packet();
cb = ack(num);
opt.requests[num - 1] = {
start: packet.time
start: packet.time,
errors: []
};
db.path(opt.path).set(packet, cb);
db.path(opt.path).path(Gun.text.random()).put(packet, cb);
if (num === opt.packets) {
return;
@@ -45,7 +48,7 @@ test = function (opt) {
resetDoneTimer(db, opt);
return run(1);
};
}

6
lib/jquery.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -32,6 +32,8 @@ console.log = (function () {
};
}());
Gun.log.squelch = true;
Gun.chain.each = function (cb, end) {
'use strict';
var n = function () {},

View File

@@ -25,6 +25,8 @@
},
"homepage": "https://github.com/PsychoLlama/panic#readme",
"dependencies": {
"gun-level": "^2.1.1"
"express": "^4.13.3",
"gun-level": "psychollama/gun-level#zero-three",
"mavis": "^1.4.1"
}
}

View File

@@ -1,9 +1,17 @@
/*jslint node: true, nomen: true */
var port, app, express = require('express');
app = express();
var port, server, gun, Gun, express = require('express');
server = express();
port = process.argv[2] || 8080;
Gun = require('gun-level');
app.use('/', express['static'](__dirname));
server.use('/', express['static'](__dirname));
server.listen(port);
gun = new Gun({
level: {
blaze: 'results/',
share: true
}
}).wsp(server);
server.use(gun.wsp.server);
require('gun-level')().attach(app);
app.listen(port);

26
ui.js Normal file
View File

@@ -0,0 +1,26 @@
/*globals $, Gun, Browser, console*/
function render(test) {
'use strict';
console.log(test.stats);
// $('stats');
}
$('#start').click(function () {
'use strict';
$('<tr>').appendTo('#stats').append('<th>').text('Peer thing');
var b, i, opt = {
packets: Number($('#each').val()),
interval: Number($('#interval').val()),
progress: render,
packet: function () {
return Gun.text.random(Number($('#length').val()));
}
};
for (i = 0; i < Number($('#tabs').val()); i += 1) {
b = new Browser(opt);
}
});