getdata
by Ehren Dames
HTML
<div id="results">
<table class="table table-condensed">
<thead>
<tr>
<th class="span2">Description</th>
<th class="span1">Duration</th>
<th class="span3">Asset Type</th>
<th class="span3">Status</th>
<th class="span3">Updated At</th>
</tr>
</thead>
<tbody data-bind="foreach: ooyala">
<tr>
<td data-bind="text: description"></td>
<td data-bind="text: duration"></td>
<td data-bind="text: asset_type"></td>
<td data-bind="text: status"></td>
<td data-bind="text: updated_at"></td>
</tr>
</tbody>
</table>
</div>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
JavaScript
(function ($) {
var _mocked = [];
$.mockJSON = function(request, template) {
for (var i = 0; i < _mocked.length; i++) {
var mock = _mocked[i];
if (mock.request.toString() == request.toString()) {
_mocked.splice(i, 1);
break;
}
}
_mocked.push({
request:request,
template:template
});
return $;
};
$.mockJSON.random = true;
var _original_ajax = $.ajax;
$.ajax = function(options) {
if (options.dataType === 'json') {
for (var i = 0; i < _mocked.length; i++) {
var mock = _mocked[i];
if (mock.request.test(options.url)) {
options.success($.mockJSON.generateFromTemplate(mock.template));
return $;
}
}
}
return _original_ajax.apply(this, arguments);
}
$.mockJSON.generateFromTemplate = function(template, name) {
var length = 0;
var matches = (name || '').match(/\w+\|(\d+)-(\d+)/);
if (matches) {
var length_min = parseInt(matches[1], 10);
var length_max = parseInt(matches[2], 10);
length = Math.round(rand() * (length_max - length_min)) + length_min;
}
var generated = null;
switch (type(template)) {
case 'array':
generated = [];
for (var i = 0; i < length; i++) {
generated[i] = $.mockJSON.generateFromTemplate(template[0]);
}
break;
case 'object':
generated = {};
for (var p in template) {
generated[p.replace(/\|(\d+-\d+|\+\d+)/, '')] = $.mockJSON.generateFromTemplate(template[p], p);
var inc_matches = p.match(/\w+\|\+(\d+)/);
if (inc_matches && type(template[p]) == 'number') {
var increment = parseInt(inc_matches[1], 10);
template[p] += increment;
}
}
break;
case 'number':
...