Browse Source

Remove ini.js

v0.7.4-release
Ryan Dahl 15 years ago
parent
commit
f541043618
  1. 81
      lib/ini.js
  2. 1
      src/node.cc
  3. 59
      test/simple/test-ini.js

81
lib/ini.js

@ -1,81 +0,0 @@
var sys = require('sys');
sys.error('The "ini" module will be removed in future versions of Node, please extract it into your own code.');
// TODO:
// 1. Handle quoted strings, including line breaks, so that this:
// foo = "bar
// baz"
// parses to {foo:"bar\n baz"}
// 2. Escape with \, so that this:
// foo = bar\
// \"baz
// parses to {foo:"bar\n \"baz"}
exports.parse = function(d) {
var ini = {'-':{}};
var section = '-';
var lines = d.split('\n');
for (var i=0; i<lines.length; i++) {
var line = lines[i].trim(),
rem = line.indexOf(";");
if (rem !== -1) line = line.substr(0, rem);
var re = /^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i;
var match = line.match(re);
if (match != null) {
if (match[1] != undefined) {
section = match[1].trim();
ini[section] = {};
} else {
var key = match[2].trim(),
value = (match[3]) ? (match[4] || "").trim() : true;
ini[section][key] = value;
}
}
}
return ini;
};
function safe (val) {
return (val+"").replace(/[\n\r]+/g, " ");
}
// ForEaches over an object. The only thing faster is to inline this function.
function objectEach(obj, fn, thisObj) {
var keys, key, i, length;
keys = Object.keys(obj);
length = keys.length;
for (i = 0; i < length; i++) {
key = keys[i];
fn.call(thisObj, obj[key], key, obj);
}
}
exports.stringify = function (obj) {
// if the obj has a "-" section, then do that first.
var ini = [];
if ("-" in obj) {
objectEach(obj["-"], function (value, key) {
ini[ini.length] = safe(key) + " = " + safe(value) + "\n";
});
}
objectEach(obj, function (section, name) {
if (name === "-") return;
ini[ini.length] = "[" + safe(name) + "]\n";
objectEach(section, function (value, key) {
ini[ini.length] = safe(key) + ((value === true)
? "\n"
: " = "+safe(value)+"\n");
});
});
return ini.join("");
};
exports.encode = exports.stringify;
exports.decode = exports.parse;

1
src/node.cc

@ -1653,7 +1653,6 @@ static Handle<Value> Binding(const Arguments& args) {
exports->Set(String::New("fs"), String::New(native_fs)); exports->Set(String::New("fs"), String::New(native_fs));
exports->Set(String::New("http"), String::New(native_http)); exports->Set(String::New("http"), String::New(native_http));
exports->Set(String::New("crypto"), String::New(native_crypto)); exports->Set(String::New("crypto"), String::New(native_crypto));
exports->Set(String::New("ini"), String::New(native_ini));
exports->Set(String::New("net"), String::New(native_net)); exports->Set(String::New("net"), String::New(native_net));
exports->Set(String::New("posix"), String::New(native_posix)); exports->Set(String::New("posix"), String::New(native_posix));
exports->Set(String::New("querystring"), String::New(native_querystring)); exports->Set(String::New("querystring"), String::New(native_querystring));

59
test/simple/test-ini.js

@ -1,59 +0,0 @@
require("../common");
var path = require('path'),
fs = require("fs"),
ini = require("ini"),
parse = require("ini").parse;
debug("load fixtures/fixture.ini");
p = path.join(fixturesDir, "fixture.ini");
fs.readFile(p, 'utf8', function(err, data) {
if (err) throw err;
assert.equal(typeof parse, 'function');
var iniContents = parse(data);
assert.equal(typeof iniContents, 'object');
var expect = { "-" :
{ "root" : "something"
, "url" : "http://example.com/?foo=bar"
}
, "the section with whitespace" :
{ "this has whitespace" : "yep"
, "just a flag, no value." : true
}
, "section" :
{ "one" : "two"
, "Foo" : "Bar"
, "this" : "Your Mother!"
, "blank" : ""
}
, "Section Two" :
{ "something else" : "blah"
, "remove" : "whitespace"
}
},
expectStr = "root = something\n"+
"url = http://example.com/?foo=bar\n"+
"[the section with whitespace]\n"+
"this has whitespace = yep\n"+
"just a flag, no value.\n"+
"[section]\n"+
"one = two\n"+
"Foo = Bar\n"+
"this = Your Mother!\n"+
"blank = \n"+
"[Section Two]\n"+
"something else = blah\n"+
"remove = whitespace\n";
assert.deepEqual(iniContents, expect,
"actual: \n"+inspect(iniContents) +"\n≠\nexpected:\n"+inspect(expect));
assert.equal(ini.stringify(iniContents), expectStr,
"actual: \n"+inspect(ini.stringify(iniContents)) +"\n≠\nexpected:\n"+inspect(expectStr));
});
Loading…
Cancel
Save