view bin/ello @ 4651:8d5d1b1d8a5a

<shachaf> ln -s unidecode bin/icode
author HackBot
date Fri, 06 Jun 2014 08:32:34 +0000
parents 7f957c1f4661
children
line wrap: on
line source

#!/usr/bin/env node
// Generated by CoffeeScript 1.6.2
(function() {
  var consonant_then_o, ell_manglable, ends_with_consonant, ends_with_consonant_then_vowel, name, starts_with_o;

  name = process.argv[2];

  if (!(name != null ? name.length : void 0)) {
    console.log('Usage: ello <name>');
    process.exit();
  }

  consonant_then_o = /(.*)([bcdfghjklmnpqrstvwxz])([o0].*)/i;

  ends_with_consonant = /[bcdfghjklmnpqrstvwxz]$/i;

  ends_with_consonant_then_vowel = /(.*[bcdfghjklmnpqrstvwxz])[aeiouy]+$/i;

  starts_with_o = /[o0]/i;

  ell_manglable = /(.*)(el+[aeiouy]+)(.*)/i;

  console.log(consonant_then_o.test(name) ? name.replace(consonant_then_o, function(match, before, consonant, rest) {
    return before + consonant + 'ell' + rest;
  }) : ell_manglable.test(name) ? name.replace(ell_manglable, function(match, before, middle, rest) {
    return before + 'ello' + rest;
  }) : starts_with_o.test(name) ? 'hell' + name : ends_with_consonant_then_vowel.test(name) ? name.replace(ends_with_consonant_then_vowel, function(match, before) {
    return before + 'ello';
  }) : ends_with_consonant.test(name) ? name + 'ello' : "Hello, " + name + "!");

}).call(this);