]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojo/string.js
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojo / string.js
diff --git a/static/dojo-release-1.1.1/dojo/string.js b/static/dojo-release-1.1.1/dojo/string.js
new file mode 100644 (file)
index 0000000..a407744
--- /dev/null
@@ -0,0 +1,84 @@
+if(!dojo._hasResource["dojo.string"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo.string"] = true;
+dojo.provide("dojo.string");
+
+/*=====
+dojo.string = { 
+       // summary: String utilities for Dojo
+};
+=====*/
+
+dojo.string.pad = function(/*String*/text, /*int*/size, /*String?*/ch, /*boolean?*/end){
+       // summary:
+       //              Pad a string to guarantee that it is at least `size` length by
+       //              filling with the character `ch` at either the start or end of the
+       //              string. Pads at the start, by default.
+       // text: the string to pad
+       // size: length to provide padding
+       // ch: character to pad, defaults to '0'
+       // end: adds padding at the end if true, otherwise pads at start
+
+       var out = String(text);
+       if(!ch){
+               ch = '0';
+       }
+       while(out.length < size){
+               if(end){
+                       out += ch;
+               }else{
+                       out = ch + out;
+               }
+       }
+       return out;     // String
+};
+
+dojo.string.substitute = function(     /*String*/template, 
+                                                                       /*Object|Array*/map, 
+                                                                       /*Function?*/transform, 
+                                                                       /*Object?*/thisObject){
+       // summary:
+       //              Performs parameterized substitutions on a string. Throws an
+       //              exception if any parameter is unmatched.
+       // description:
+       //              For example,
+       //              |       dojo.string.substitute("File '${0}' is not found in directory '${1}'.",["foo.html","/temp"]);
+       //              |       dojo.string.substitute("File '${name}' is not found in directory '${info.dir}'.",
+       //              |               {name: "foo.html", info: {dir: "/temp"}});
+       //              both return
+       //              |       "File 'foo.html' is not found in directory '/temp'."
+       // template: 
+       //              a string with expressions in the form `${key}` to be replaced or
+       //              `${key:format}` which specifies a format function.
+       // map: hash to search for substitutions
+       // transform: 
+       //              a function to process all parameters before substitution takes
+       //              place, e.g. dojo.string.encodeXML
+       // thisObject: 
+       //              where to look for optional format function; default to the global
+       //              namespace
+
+       return template.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g, function(match, key, format){
+               var value = dojo.getObject(key,false,map);
+               if(format){ value = dojo.getObject(format,false,thisObject)(value);}
+               if(transform){ value = transform(value, key); }
+               return value.toString();
+       }); // string
+};
+
+dojo.string.trim = function(/*String*/ str){
+       // summary: trims whitespaces from both sides of the string
+       // description:
+       //      This version of trim() was taken from [Steven Levithan's blog](http://blog.stevenlevithan.com/archives/faster-trim-javascript).
+       //      The short yet performant version of this function is 
+       //      dojo.trim(), which is part of Dojo base.
+       str = str.replace(/^\s+/, '');
+       for(var i = str.length - 1; i > 0; i--){
+               if(/\S/.test(str.charAt(i))){
+                       str = str.substring(0, i + 1);
+                       break;
+               }
+       }
+       return str;     // String
+};
+
+}