X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=File.js;h=2726e0ebd5aea9feaaee9243ad3cbe543d9f6c8c;hb=e39cfe56bed8c2713fd2e8c13ad2323a744c527e;hp=dcbfdd5b3abf218b37af11e51e1237b14a319deb;hpb=53e66abba6c3ed7d74cb57e92aeb15120801b7a5;p=app.Builder.js diff --git a/File.js b/File.js index dcbfdd5b3..2726e0ebd 100644 --- a/File.js +++ b/File.js @@ -2,7 +2,7 @@ GLib = imports.gi.GLib; Gio = imports.gi.Gio; -imports['String.js'].load(String); + /** * @namespace File @@ -22,17 +22,41 @@ var File = { SEPARATOR : '/', + // fixme - this needs a bitter location.. + // they where in a string class before, but overriding String methods is not a good normally a good idea.. + + rtrim : function (s,toTrim) { + if (s.substr(s.length - toTrim.length) == toTrim) { + return s.slice(0, s.length - toTrim.length); + } + + return s; + }, + trim : function (s,toTrim) { + var out = s.ltrim(toTrim); + out = out.rtrim(toTrim); + return out; + }, + + ltrim : function (s, toTrim) { + if (s.substr(0, toTrim.length) == toTrim) { + return s.slice(toTrim.length); + } + + return s; + }, + join : function () { var out = ""; for (var i = 0; i < arguments.length; i++) { if (i == 0) { - out += arguments[i].rtrim(File.SEPARATOR); + out += this.rtrim(arguments[i], File.SEPARATOR); } else if (i == arguments.length - 1) { - out += File.SEPARATOR + arguments[i].ltrim(File.SEPARATOR); + out += File.SEPARATOR + this.ltrim(arguments[i], File.SEPARATOR); } else { - out += File.SEPARATOR + arguments[i].trim(File.SEPARATOR); + out += File.SEPARATOR + this.trim(arguments[i], File.SEPARATOR); } } return out; @@ -104,10 +128,13 @@ var File = { * */ write : function (path, string) { + var d = new Date(); var f = Gio.file_new_for_path(String(path)); var data_out = new Gio.DataOutputStream({base_stream:f.replace(null, false, Gio.FileCreateFlags.NONE, null)}); data_out.put_string(string, null); data_out.close(null); + print("WRITE : " + path + " in " + ((new Date()) - d) + 'ms'); + }, /** * append @@ -164,6 +191,8 @@ var File = { }, /** * Make a directory + * FIXME - needs perms setting.. + * * @arg directory {String} Directory to make */