Skip to content

Commit 8e3e1bf

Browse files
committed
adding ldp.suffixMeta, fix nodeSolidServer#89
1 parent 182e90d commit 8e3e1bf

4 files changed

Lines changed: 38 additions & 16 deletions

File tree

bin/ldnode.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ var argv = require('nomnom')
6464
help: 'Suffix for acl files (default: \'.acl\')',
6565
abbr: 'sA'
6666
})
67+
.option('suffixMeta', {
68+
full: 'suffix-meta',
69+
help: 'Suffix for metadata files (default: \'.meta\')',
70+
abbr: 'sM'
71+
})
6772
.option('suffixChanges', {
6873
full: 'suffix-changes',
6974
help: 'Suffix for acl files (default: \'.changes\')',

handlers/get.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@ var file = require('../fileStore.js');
1818
var subscription = require('../subscription.js');
1919

2020
var ldpVocab = require('../vocab/ldp.js');
21-
var metaExtension = '.meta';
2221
var turtleExtension = '.ttl';
2322

2423
function get(req, res, includeBody) {
2524
var ldp = req.app.locals.ldp;
2625
var uri = file.uriBase(req);
26+
var filename = file.uriToFilename(req.path, ldp.root);
2727

2828
// Add request to subscription service
2929
if (req.path.slice(-ldp.suffixChanges.length) ===
3030
ldp.suffixChanges) {
31-
debug("GET -- Subscribed to ", req.originalUrl);
31+
debug("GET -- Subscribed to " + req.originalUrl);
3232
return subscription.subscribeToChanges(req, res);
3333
}
3434

@@ -51,16 +51,15 @@ function get(req, res, includeBody) {
5151
debug('HEAD -- ' + req.originalUrl);
5252
}
5353

54-
var filename = file.uriToFilename(req.path, ldp.root);
55-
54+
// Add ACL and Meta Link in header
5655
var aclLink = file.getResourceLink(
5756
filename, uri,
5857
ldp.root, ldp.suffixAcl,
59-
metaExtension);
58+
ldp.suffixMeta);
6059

6160
var metaLink = file.getResourceLink(
6261
filename, uri,
63-
ldp.root, metaExtension,
62+
ldp.root, ldp.suffixMeta,
6463
ldp.suffixAcl);
6564

6665
header.addLink(res, aclLink, 'acl');
@@ -98,7 +97,7 @@ function get(req, res, includeBody) {
9897
// Consider acl and meta files text/turtle
9998
if (path.extname(filename) === ldp.suffixAcl ||
10099
path.basename(filename) === turtleExtension ||
101-
path.basename(filename) === metaExtension) {
100+
path.basename(filename) === ldp.suffixMeta) {
102101
contentType = 'text/turtle';
103102
}
104103

ldp.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ var debug = require('./logging');
1515

1616
var utils = require('./fileStore.js');
1717
var ns = require('./vocab/ns.js').ns;
18-
var metaExtension = '.meta';
1918
var turtleExtension = '.ttl';
2019

2120
module.exports = LDP;
@@ -45,6 +44,7 @@ function LDP(argv) {
4544
// Processed
4645
ldp.leavePatchConnectionOpen = false;
4746
ldp.suffixAcl = argv.suffixAcl || ".acl";
47+
ldp.suffixMeta = argv.suffixMeta || ".meta";
4848
ldp.suffixChanges = argv.suffixChanges || '.changes';
4949
ldp.suffixSSE = argv.suffixSSE || '.events';
5050

@@ -87,7 +87,7 @@ LDP.prototype.readFile = function (filename, callback) {
8787
};
8888

8989
LDP.prototype.readContainerMeta = function (directory, callback) {
90-
fs.readFile(directory + metaExtension, {
90+
fs.readFile(directory + this.suffixMeta, {
9191
'encoding': 'utf8'
9292
}, function(err, data) {
9393
if (err) {
@@ -144,7 +144,7 @@ LDP.prototype.listContainer = function (filename, uri, containerData, callback)
144144
function (files, next) {
145145

146146
async.each(files, function(file, cb) {
147-
if (S(file).endsWith(metaExtension) || S(file).endsWith(ldp.suffixAcl)) {
147+
if (S(file).endsWith(ldp.suffixMeta) || S(file).endsWith(ldp.suffixAcl)) {
148148
return cb(null);
149149
}
150150

@@ -165,12 +165,12 @@ LDP.prototype.listContainer = function (filename, uri, containerData, callback)
165165
var fileSubject = file;
166166

167167
if (stats.isDirectory()) {
168-
metaFile = filename + file + '/' + metaExtension;
168+
metaFile = filename + file + '/' + ldp.suffixMeta;
169169
fileSubject += '/';
170170
} else if (stats.isFile() && S(file).endsWith(turtleExtension)) {
171171
metaFile = filename + file;
172172
} else {
173-
metaFile = filename + file + metaExtension;
173+
metaFile = filename + file + ldp.suffixMeta;
174174
}
175175
fileBaseUri = utils.filenameToBaseUri(file, uri, ldp.root);
176176

@@ -322,7 +322,7 @@ LDP.prototype.delete = function(filename, callback) {
322322
};
323323

324324
LDP.prototype.deleteContainerMetadata = function(directory, callback) {
325-
return fs.unlink(directory + metaExtension, function(err, data) {
325+
return fs.unlink(directory + this.suffixMeta, function(err, data) {
326326
if (err) {
327327
debug.container("DELETE -- unlink() error: " + err);
328328
return callback({status:404, message: "Can't delete container: " + err });
@@ -447,15 +447,15 @@ LDP.prototype.createNewContainer = function (uri, containerPath, containerGraph,
447447
};
448448

449449
LDP.prototype.writeContainerMetadata = function (directory, container, callback) {
450-
fs.writeFile(directory + metaExtension, container, callback);
450+
fs.writeFile(directory + this.suffixMeta, container, callback);
451451
};
452452

453453
LDP.prototype.isMetadataFile = function (filename) {
454-
if (path.extname(filename) === metaExtension)
454+
if (path.extname(filename) === this.suffixMeta)
455455
return true;
456456
return false;
457457
};
458458

459459
LDP.prototype.hasContainerMetadata = function(directory) {
460-
return fs.existsSync(directory + metaExtension);
460+
return fs.existsSync(directory + this.suffixMeta);
461461
};

test/params.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,24 @@ function write (text, file) {
2525

2626
describe('params', function () {
2727

28+
describe('suffixMeta', function () {
29+
describe('not passed', function() {
30+
it('should fallback on .meta', function() {
31+
var ldp = ldnode();
32+
assert.equal(ldp.locals.ldp.suffixMeta, '.meta');
33+
});
34+
});
35+
});
36+
37+
describe('suffixAcl', function () {
38+
describe('not passed', function() {
39+
it('should fallback on .acl', function() {
40+
var ldp = ldnode();
41+
assert.equal(ldp.locals.ldp.suffixAcl, '.acl');
42+
});
43+
});
44+
});
45+
2846
describe('mount', function () {
2947

3048
describe('not passed', function () {

0 commit comments

Comments
 (0)