-
Notifications
You must be signed in to change notification settings - Fork 1
/
NameSafe.m
31 lines (23 loc) · 888 Bytes
/
NameSafe.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function ssafe = NameSafe(s,method)
invalidChars = ['.', ' ', '/', '+', ':'];
switch lower(method),
case 'camel'
rexPos = regexp(s, ['[' invalidChars ']']);
% names that need refactoring
ixBadNames = find(~cellfun(@isempty, rexPos));
for i = 1:length(ixBadNames),
curName = s{ixBadNames(i)};
curRexPos = rexPos{ixBadNames(i)};
% lower case the entire string
curName = lower(curName);
% delete the offending character
curName(curRexPos) = [];
% uppercase the position immediately following
curName(curRexPos) = upper(curName(curRexPos));
s{ixBadNames(i)} = curName;
end
ssafe = s;
otherwise
% default filesafing
ssafe = FileSafe(s);
end