Skip to content

Instantly share code, notes, and snippets.

@TaylorAckley
Last active May 2, 2017 17:10
Show Gist options
  • Save TaylorAckley/46592f75d5af6caf4e76d27a8f0ed137 to your computer and use it in GitHub Desktop.
Save TaylorAckley/46592f75d5af6caf4e76d27a8f0ed137 to your computer and use it in GitHub Desktop.
Faker Scaffold/Replacer
// Requires momentjs and faker.js.
//usage
/*
<div class="scaffold-user">
<span class="scaffold-name"></span> OR <span class="scaffold-name">{{scaffold-name}} - other text here</span>
<span class="scaffold-initials"></span>
<span class="scaffold-email"></span>
</div>
<span class="scaffold-future-date"></span>
etc....
*/
String.prototype.getInitials = function (glue) {
if (typeof glue == "undefined") {
var glue = true;
}
var initials = this.replace(/[^a-zA-Z- ]/g, "").match(/\b\w/g);
if (glue) {
return initials.join('');
}
return initials;
};
String.prototype.capitalize = function () {
return this.toLowerCase().replace(/\b\w/g, function (m) {
return m.toUpperCase();
});
};
$(function () {
var mustache = new RegExp(/{{\s*[\w\.]+\s*}}/g);
$('.scaffold-user').each(function (i) {
var _name = faker.fake("{{name.firstName}} {{name.lastName}}");
var _initials = _name.getInitials();
var _this = this;
var _nameInterpolate = function () {
var content = $(_this).find('.scaffold-name').text();
if (/{{\s*[\w\.]+\s*}}/g.test(content) === true) {
var newContent = content.replace(mustache, _name);
return newContent;
} else {
return _name;
}
};
var _email = function () {
name = _name.replace(" ", "").toLowerCase();
return name + "@example.com";
}
$(this).find('.scaffold-name').text(_nameInterpolate());
$(this).find('.scaffold-initials').html(_initials);
$(this).find('.scaffold-email').html(_email);
});
$('.scaffold-date-future').each(function () {
var _date = faker.date.future();
var value = moment(_date).format('MMMM Do, YYYY');
$(this).text(value);
});
$('.scaffold-date-past').each(function () {
var _date = faker.date.past();
var value = moment(_date).format('MMMM Do, YYYY');
$(this).text(value);
});
$('.scaffold-number').each(function (i) {
var max = this.attr('data-num-max') || 100;
var _num = faker.random.number(max);
$(this).text(_num);
});
$('.scaffold-number-chart').each(function (i) {
var _num = faker.random.number(100);
$(this).addClass('p'+_num);
$(this).find('span').text(_num + '%');
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment