Skip to content

Instantly share code, notes, and snippets.

@akinozgen
Created September 14, 2020 11:19
Show Gist options
  • Save akinozgen/d82fb126ea4be12a6e6e15ba0cfe3908 to your computer and use it in GitHub Desktop.
Save akinozgen/d82fb126ea4be12a6e6e15ba0cfe3908 to your computer and use it in GitHub Desktop.
yancaman.js
#!/usr/bin/node
/**
* Copyright 2020 Akın Özgen <[email protected]>
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom
* the Software is furnished to do so, subject to the following conditions:
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
/**
* Usage:
* $ chmod +x yancaman.js
* $ ./yancaman.js "given name"
* OR
* $ ./yancaman.js given name
*/
function yancaman(str) {
delete str[0];
delete str[1];
str = str.filter(_ => !!_).join(' ');
const parts = str.split(' ');
const firstfirst = parts[0][0];
const firstlast = parts[parts.length - 1][0];
return firstlast +
parts[0].slice(1) + ' ' +
(parts.length == 3 ? ' '+parts[1]+' ' : '') +
firstfirst +
parts[parts.length - 1].slice(1);
}
console.log(
yancaman(process.argv.length >= 3 ? process.argv : '')
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment