annotate +util/ReplaceableString.m @ 131:26e047194383

ReplaceableString: Added .appendFormat()
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 05 Feb 2016 09:43:34 +0100
parents 9797a74a94ec
children af3bd542d550
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
130
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 classdef ReplaceableString < handle
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 properties
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 n
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 fmt
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 param
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 methods
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 function obj = ReplaceableString(fmt, varargin)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 default_arg('fmt', '');
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 obj.n = 0;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 obj.setFormat(fmt);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 obj.param = varargin;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 function setFormat(obj, fmt)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 obj.fmt = fmt;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20
131
26e047194383 ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents: 130
diff changeset
21 function appendFormat(obj, fmt)
26e047194383 ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents: 130
diff changeset
22 obj.fmt = [obj.fmt, fmt];
26e047194383 ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents: 130
diff changeset
23 end
26e047194383 ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents: 130
diff changeset
24
130
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 function update(obj, fmt, varargin)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 obj.setFormat(fmt);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 obj.param = varargin;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 obj.display();
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 function updateParam(obj, varargin)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 obj.param = varargin;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 obj.display();
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 function display(obj)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 reverseStr = repmat(sprintf('\b'), 1, obj.n);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 newStr = padStr(sprintf(obj.fmt, obj.param{:}),obj.n);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 fprintf([reverseStr, newStr]);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 obj.n = length(newStr);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 function b = padStr(a, n)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 b = sprintf('%-*s', n, a);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50 end