WORKPATH=$PWD/src
#minify
echo 'minify'
for f in $(ls $WORKPATH/template | grep .hbs)
do html-minifier $WORKPATH/template/$f -o $WORKPATH/template/$f.min \
--collapse-whitespace --remove-comments
done
for f in $(ls $WORKPATH/template.server | grep .hbs)
do html-minifier $WORKPATH/template.server/$f -o $WORKPATH/template.server/$f.min \
--collapse-whitespace --remove-comments
done
#tmpl
echo 'tmpl'
handlebars $WORKPATH/template -e hbs.min -f $WORKPATH/js.client/templates.js \
-c handlebars/runtime -n module.exports
handlebars $WORKPATH/template.server -e hbs.min -f $WORKPATH/js.server/templates.server.js \
-c handlebars/runtime -n module.exports
cp $WORKPATH/js.client/templates.js $WORKPATH/js.server/templates.client.js
#clean
echo 'clean'
rm $WORKPATH/template/*.hbs.min
rm $WORKPATH/template.server/*.hbs.min
arr.sort(() => Math.random() - 0.5);
var keys = Object.keys(a).sort(() => Math.random() - 0.5);
img.style.position = "absolute"; //or "relative" or "fixed"
img.style.top = random1 + 'px';
someObject = null //не знаю можно ли писать в cs var поэтому так
Promise.resolve()
.then(@getObjectDescription.bind(@))
.then(
(so) ->
someObject = so
)
.then(@getSomeSpecialFieldValue.bind(@))
.then(
(value) ->
someObject.special_field = value
return someObject
)
.then(
(someObject) ->
data = new FormData()
data.append('field', someObject.field)
data.append('special_field', someObject.special_field)
options =
method: 'post'
body: data
return options
)
.then(@execute.bind(@, 'rest.api.method'))
"PI.\\\\dev-pi2012\\Demo.001;"
и экранирует слеши"PI.\\dev-pi2012\Demo.001;"
и опять таки экранирует слешиvar locale = i18n.getLocale();
Article.find({}, {
['title.' + locale]: 1,
['content.' + locale]: 1
})
var locale = i18n.getLocale();
Article.find().sort('- created').populate('user', 'displayName').exec(function (err, articles) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
articles.forEach(article => {
article.title = article.title[locale];
article.content = article.content[locale];
});
res.json(articles);
}
});
'use strict';
const net = require('net');
const server = net.createServer(socket => {
var data = '';
socket.on('data', d => {
data += d;
var p = data.indexOf('\n');
if(~p) {
let cmd = data.substr(0, p);
data = data.slice(p + 1);
onCommand(cmd.trim(), socket);
}
});
});
server.listen(() => {
var address = server.address();
console.log('opened server on', address);
});
function onCommand(cmd, socket) {
switch(cmd) {
case 'open':
socket.write('opened\n');
break;
case 'add':
socket.write('added\n');
break;
case 'process':
socket.write('processed\n');
break;
}
}
function countFieldPersent(arr, field) {
var data = arr.reduce((r, item) => {
var value = String(item[field]);
if(typeof r[value] === 'undefined') {
r[value] = 0;
}
return ++r[value], r;
}, {});
return Object.getOwnPropertyNames(data).map(label => ({
label,
value : (data[label] * 100) / arr.length
}));
}
var arr = [{ FirstName: 'Pavel', LastName: 'Pavlol', Phone: '1234567', Gender:'male' },
{ FirstName: 'Ivan', LastName: 'Ivanov', Phone: '1234567', Gender:'female' }];
var result = countFieldPersent(arr, 'Gender');
Правда в моем варианте значения будут сравниваться как строки, так как я их перевожу в ключи объекта data