Advertisement
nikolov_k

Special Console

May 1st, 2013
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var specialConsole = (function () {
  2.     function placeHolder(place, text) {
  3.         this.place = place;
  4.         this.text = text;
  5.     }
  6.  
  7.     function formatText() {
  8.         var placeHolders = [];
  9.         var text = arguments[0].toString();
  10.         if (arguments.length == 1) {
  11.             text = arguments[0];
  12.         } else if (arguments.length > 1) {
  13.             for (var i = 1; i < arguments.length; i++) {
  14.                 placeHolders.push(new placeHolder('\\{' + (i - 1) + '\\}', arguments[i]));
  15.             }
  16.             for (var i = 0; i < placeHolders.length; i++) {
  17.                 var re = new RegExp(placeHolders[i].place, "g");
  18.                 text = text.replace(re, placeHolders[i].text);
  19.             }
  20.         }
  21.         return text;
  22.     }
  23.  
  24.     function writeLine() {
  25.         var text = formatText.apply(null, arguments);
  26.         console.log(text);
  27.     }
  28.  
  29.     function writeError() {
  30.         var text = formatText.apply(null, arguments);
  31.         console.error(text);
  32.     }
  33.  
  34.     function writeWarning() {
  35.         var text = formatText.apply(null, arguments);
  36.         console.warn(text);
  37.     }
  38.  
  39.     return {
  40.         writeLine: writeLine,
  41.         writeError: writeError,
  42.         writeWarning: writeWarning
  43.     }
  44. })();
  45.  
  46. specialConsole.writeLine("Message: hello");
  47. //logs to the console "Message: hello"
  48. specialConsole.writeLine("Message: {0}", "hello");
  49. //logs to the console "Message: hello"
  50. specialConsole.writeError("Error: {0}", "Something happened");
  51. specialConsole.writeWarning("Warning: {0}", "A warning");
  52. specialConsole.writeLine("My name is {0} {1}", "Petyr", "Petrov");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement