Skip to content

Commit

Permalink
Add default privatePrefix
Browse files Browse the repository at this point in the history
  • Loading branch information
FWeinb committed Feb 4, 2015
1 parent 6a8d939 commit bae60fa
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 6 deletions.
16 changes: 13 additions & 3 deletions src/annotation/annotations/access.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
export default function access(env) {

const defaultPrivatePrefixTest = RegExp.prototype.test.bind(/^[_-]/);

return {
name: 'access',

Expand All @@ -7,11 +10,18 @@ export default function access(env) {
},

autofill(item) {
if (env.privatePrefix === false) { return; }

let testFunc = defaultPrivatePrefixTest;

if (typeof env.privatePrefix !== 'undefined') {
if ((new RegExp(env.privatePrefix)).test(item.context.name)) {
return 'private';
}
testFunc = RegExp.prototype.test.bind(new RegExp(env.privatePrefix));
}

if (testFunc(item.context.name)) {
return 'private';
}

},

default() {
Expand Down
20 changes: 17 additions & 3 deletions test/annotations/access.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,23 @@ describe('#access', function () {
assert.equal(access.parse('\nte\nst\t'), 'te\nst');
});

it('should autofill based on privatePrefix', function () {
var accessEnv = accessCtor({ privatePrefix: '^_' });
it('should autofill based on default', function () {
assert.equal(access.autofill({ context: { name: 'non-private'}, access: 'public'}), undefined);
assert.equal(access.autofill({ context: { name: '_private-name'}, access: 'public'}), 'private');
assert.equal(access.autofill({ context: { name: '-private-name'}, access: 'public'}), 'private');
});

it('should ignore autofill if privatePrefix is false', function () {
var accessEnv = accessCtor({ privatePrefix: false });
assert.equal(accessEnv.autofill({ context: { name: 'non-private'}, access: 'public'}), undefined);
assert.equal(accessEnv.autofill({ context: { name: '_private-name'}, access: 'public'}), 'private');
assert.equal(accessEnv.autofill({ context: { name: '_private-name'}, access: 'public'}), undefined);
assert.equal(accessEnv.autofill({ context: { name: '-private-name'}, access: 'public'}), undefined);
});

it('should autofill based on privatePrefix', function () {
var accessEnv = accessCtor({ privatePrefix: '^--' });
assert.equal(accessEnv.autofill({ context: { name: '-non-private'}, access: 'public'}), undefined);
assert.equal(accessEnv.autofill({ context: { name: '_non-private'}, access: 'public'}), undefined);
assert.equal(accessEnv.autofill({ context: { name: '--private-name'}, access: 'public'}), 'private');
});
});

0 comments on commit bae60fa

Please sign in to comment.