standup_md 0.3.2 → 0.3.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +11 -9
- data/README.md +67 -34
- data/Rakefile +3 -1
- data/doc/README_md.html +54 -54
- data/doc/StandupMD.html +8 -97
- data/doc/StandupMD/Cli.html +21 -163
- data/doc/StandupMD/Cli/Helpers.html +13 -34
- data/doc/StandupMD/Config.html +7 -44
- data/doc/StandupMD/Config/Cli.html +26 -85
- data/doc/StandupMD/Config/Entry.html +23 -67
- data/doc/StandupMD/Config/EntryList.html +22 -48
- data/doc/StandupMD/Config/File.html +27 -155
- data/doc/StandupMD/Entry.html +11 -120
- data/doc/StandupMD/EntryList.html +101 -361
- data/doc/StandupMD/File.html +51 -182
- data/doc/StandupMD/Version.html +143 -0
- data/doc/created.rid +15 -15
- data/doc/css/rdoc.css +1 -1
- data/doc/index.html +52 -67
- data/doc/js/navigation.js.gz +0 -0
- data/doc/js/search_index.js +1 -1
- data/doc/js/search_index.js.gz +0 -0
- data/doc/js/searcher.js.gz +0 -0
- data/doc/table_of_contents.html +51 -110
- data/lib/standup_md.rb +3 -2
- data/lib/standup_md/cli.rb +2 -3
- data/lib/standup_md/cli/helpers.rb +66 -34
- data/lib/standup_md/config.rb +2 -2
- data/lib/standup_md/config/cli.rb +22 -21
- data/lib/standup_md/config/entry.rb +12 -7
- data/lib/standup_md/config/entry_list.rb +8 -3
- data/lib/standup_md/config/file.rb +24 -14
- data/lib/standup_md/entry.rb +2 -2
- data/lib/standup_md/entry_list.rb +24 -41
- data/lib/standup_md/file.rb +32 -15
- data/lib/standup_md/file/helpers.rb +13 -15
- data/lib/standup_md/version.rb +23 -4
- data/standup_md.gemspec +12 -16
- metadata +7 -6
data/doc/StandupMD/Cli.html
CHANGED
@@ -21,8 +21,6 @@
|
|
21
21
|
<link href="../css/rdoc.css" rel="stylesheet">
|
22
22
|
|
23
23
|
|
24
|
-
|
25
|
-
|
26
24
|
<body id="top" role="document" class="class">
|
27
25
|
<nav role="navigation">
|
28
26
|
<div id="project-navigation">
|
@@ -59,51 +57,38 @@
|
|
59
57
|
|
60
58
|
<div id="class-metadata">
|
61
59
|
|
62
|
-
|
60
|
+
|
61
|
+
<div id="parent-class-section" class="nav-section">
|
63
62
|
<h3>Parent</h3>
|
64
63
|
|
65
|
-
|
66
64
|
<p class="link">Object
|
67
|
-
|
68
65
|
</div>
|
69
66
|
|
70
|
-
|
67
|
+
|
68
|
+
<div id="includes-section" class="nav-section">
|
71
69
|
<h3>Included Modules</h3>
|
72
70
|
|
73
71
|
<ul class="link-list">
|
74
|
-
|
75
|
-
|
76
72
|
<li><a class="include" href="Cli/Helpers.html">StandupMD::Cli::Helpers</a>
|
77
|
-
|
78
|
-
|
79
73
|
</ul>
|
80
74
|
</div>
|
81
75
|
|
82
76
|
|
83
|
-
|
77
|
+
|
78
|
+
<!-- Method Quickref -->
|
84
79
|
<div id="method-list-section" class="nav-section">
|
85
80
|
<h3>Methods</h3>
|
86
81
|
|
87
82
|
<ul class="link-list" role="directory">
|
88
|
-
|
89
83
|
<li ><a href="#method-c-config">::config</a>
|
90
|
-
|
91
84
|
<li ><a href="#method-c-echo">::echo</a>
|
92
|
-
|
93
85
|
<li ><a href="#method-c-execute">::execute</a>
|
94
|
-
|
95
86
|
<li ><a href="#method-c-new">::new</a>
|
96
|
-
|
97
87
|
<li ><a href="#method-i-echo">#echo</a>
|
98
|
-
|
99
88
|
<li ><a href="#method-i-edit">#edit</a>
|
100
|
-
|
101
89
|
<li ><a href="#method-i-load_preferences">#load_preferences</a>
|
102
|
-
|
103
90
|
<li ><a href="#method-i-preference_file_loaded-3F">#preference_file_loaded?</a>
|
104
|
-
|
105
91
|
<li ><a href="#method-i-write_file">#write_file</a>
|
106
|
-
|
107
92
|
</ul>
|
108
93
|
</div>
|
109
94
|
|
@@ -121,21 +106,15 @@
|
|
121
106
|
|
122
107
|
</section>
|
123
108
|
|
124
|
-
|
125
109
|
<section id="5Buntitled-5D" class="documentation-section">
|
126
|
-
|
127
110
|
|
128
|
-
|
129
111
|
|
130
|
-
|
131
112
|
|
132
|
-
|
133
113
|
<section class="attribute-method-details" class="method-section">
|
134
114
|
<header>
|
135
115
|
<h3>Attributes</h3>
|
136
116
|
</header>
|
137
117
|
|
138
|
-
|
139
118
|
<div id="attribute-i-entry" class="method-detail">
|
140
119
|
<div class="method-heading attribute-method-heading">
|
141
120
|
<span class="method-name">entry</span><span
|
@@ -143,14 +122,11 @@
|
|
143
122
|
</div>
|
144
123
|
|
145
124
|
<div class="method-description">
|
146
|
-
|
147
125
|
<p>The entry searched for, usually today.</p>
|
148
126
|
|
149
127
|
<p>@return [StandupMD::Entry]</p>
|
150
|
-
|
151
128
|
</div>
|
152
129
|
</div>
|
153
|
-
|
154
130
|
<div id="attribute-i-file" class="method-detail">
|
155
131
|
<div class="method-heading attribute-method-heading">
|
156
132
|
<span class="method-name">file</span><span
|
@@ -158,14 +134,11 @@
|
|
158
134
|
</div>
|
159
135
|
|
160
136
|
<div class="method-description">
|
161
|
-
|
162
137
|
<p>The file loaded.</p>
|
163
138
|
|
164
139
|
<p>@return [StandupMD::File]</p>
|
165
|
-
|
166
140
|
</div>
|
167
141
|
</div>
|
168
|
-
|
169
142
|
<div id="attribute-i-options" class="method-detail">
|
170
143
|
<div class="method-heading attribute-method-heading">
|
171
144
|
<span class="method-name">options</span><span
|
@@ -173,114 +146,77 @@
|
|
173
146
|
</div>
|
174
147
|
|
175
148
|
<div class="method-description">
|
176
|
-
|
177
149
|
<p>Arguments passed at runtime.</p>
|
178
150
|
|
179
151
|
<p>@return [Array] ARGV</p>
|
180
|
-
|
181
152
|
</div>
|
182
153
|
</div>
|
183
|
-
|
184
154
|
</section>
|
185
|
-
|
186
155
|
|
187
|
-
|
156
|
+
|
188
157
|
<section id="public-class-5Buntitled-5D-method-details" class="method-section">
|
189
158
|
<header>
|
190
159
|
<h3>Public Class Methods</h3>
|
191
160
|
</header>
|
192
161
|
|
193
|
-
|
194
162
|
<div id="method-c-config" class="method-detail ">
|
195
|
-
|
196
163
|
<div class="method-heading">
|
197
164
|
<span class="method-name">config</span><span
|
198
165
|
class="method-args">()</span>
|
199
|
-
|
200
166
|
<span class="method-click-advice">click to toggle source</span>
|
201
|
-
|
202
167
|
</div>
|
203
|
-
|
204
168
|
|
205
169
|
<div class="method-description">
|
206
|
-
|
207
170
|
<p>Access to the class's configuration.</p>
|
208
171
|
|
209
172
|
<p>@return [StandupMD::Config::Cli]</p>
|
210
|
-
|
211
|
-
|
212
173
|
|
213
|
-
|
214
174
|
<div class="method-source-code" id="config-source">
|
215
|
-
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line
|
175
|
+
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line 16</span>
|
216
176
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">config</span>
|
217
177
|
<span class="ruby-ivar">@config</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">StandupMD</span>.<span class="ruby-identifier">config</span>.<span class="ruby-identifier">cli</span>
|
218
178
|
<span class="ruby-keyword">end</span></pre>
|
219
179
|
</div>
|
220
|
-
|
221
180
|
</div>
|
222
181
|
|
223
|
-
|
224
182
|
|
225
|
-
|
226
183
|
</div>
|
227
184
|
|
228
|
-
|
229
185
|
<div id="method-c-echo" class="method-detail ">
|
230
|
-
|
231
186
|
<div class="method-heading">
|
232
187
|
<span class="method-name">echo</span><span
|
233
188
|
class="method-args">(msg)</span>
|
234
|
-
|
235
189
|
<span class="method-click-advice">click to toggle source</span>
|
236
|
-
|
237
190
|
</div>
|
238
|
-
|
239
191
|
|
240
192
|
<div class="method-description">
|
241
|
-
|
242
193
|
<p>Prints output if <code>verbose</code> is true.</p>
|
243
194
|
|
244
195
|
<p>@return [nil]</p>
|
245
|
-
|
246
|
-
|
247
196
|
|
248
|
-
|
249
197
|
<div class="method-source-code" id="echo-source">
|
250
|
-
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line
|
198
|
+
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line 24</span>
|
251
199
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">echo</span>(<span class="ruby-identifier">msg</span>)
|
252
200
|
<span class="ruby-identifier">puts</span> <span class="ruby-identifier">msg</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">verbose</span>
|
253
201
|
<span class="ruby-keyword">end</span></pre>
|
254
202
|
</div>
|
255
|
-
|
256
203
|
</div>
|
257
204
|
|
258
|
-
|
259
205
|
|
260
|
-
|
261
206
|
</div>
|
262
207
|
|
263
|
-
|
264
208
|
<div id="method-c-execute" class="method-detail ">
|
265
|
-
|
266
209
|
<div class="method-heading">
|
267
210
|
<span class="method-name">execute</span><span
|
268
211
|
class="method-args">(options = [])</span>
|
269
|
-
|
270
212
|
<span class="method-click-advice">click to toggle source</span>
|
271
|
-
|
272
213
|
</div>
|
273
|
-
|
274
214
|
|
275
215
|
<div class="method-description">
|
276
|
-
|
277
216
|
<p>Creates an instance of <code>StandupMD</code> and runs what the user requested.</p>
|
278
|
-
|
279
|
-
|
280
217
|
|
281
|
-
|
282
218
|
<div class="method-source-code" id="execute-source">
|
283
|
-
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line
|
219
|
+
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line 30</span>
|
284
220
|
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">execute</span>(<span class="ruby-identifier">options</span> = [])
|
285
221
|
<span class="ruby-identifier">exe</span> = <span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>)
|
286
222
|
|
@@ -292,158 +228,109 @@
|
|
292
228
|
<span class="ruby-keyword">end</span>
|
293
229
|
<span class="ruby-keyword">end</span></pre>
|
294
230
|
</div>
|
295
|
-
|
296
231
|
</div>
|
297
232
|
|
298
|
-
|
299
233
|
|
300
|
-
|
301
234
|
</div>
|
302
235
|
|
303
|
-
|
304
236
|
<div id="method-c-new" class="method-detail ">
|
305
|
-
|
306
237
|
<div class="method-heading">
|
307
238
|
<span class="method-name">new</span><span
|
308
239
|
class="method-args">(options = [], load_config = true)</span>
|
309
|
-
|
310
240
|
<span class="method-click-advice">click to toggle source</span>
|
311
|
-
|
312
241
|
</div>
|
313
|
-
|
314
242
|
|
315
243
|
<div class="method-description">
|
316
|
-
|
317
244
|
<p>Constructor. Sets defaults.</p>
|
318
245
|
|
319
246
|
<p>@param [Array] options</p>
|
320
|
-
|
321
|
-
|
322
247
|
|
323
|
-
|
324
248
|
<div class="method-source-code" id="new-source">
|
325
|
-
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line
|
249
|
+
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line 63</span>
|
326
250
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">options</span> = [], <span class="ruby-identifier">load_config</span> = <span class="ruby-keyword">true</span>)
|
327
251
|
<span class="ruby-ivar">@config</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">config</span>
|
328
252
|
<span class="ruby-ivar">@preference_file_loaded</span> = <span class="ruby-keyword">false</span>
|
329
253
|
<span class="ruby-ivar">@options</span> = <span class="ruby-identifier">options</span>
|
330
254
|
<span class="ruby-identifier">load_preferences</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">load_config</span>
|
331
|
-
<span class="ruby-identifier">
|
255
|
+
<span class="ruby-identifier">load_runtime_preferences</span>(<span class="ruby-identifier">options</span>)
|
332
256
|
<span class="ruby-ivar">@file</span> = <span class="ruby-constant">StandupMD</span><span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">find_by_date</span>(<span class="ruby-ivar">@config</span>.<span class="ruby-identifier">date</span>)
|
333
257
|
<span class="ruby-ivar">@file</span>.<span class="ruby-identifier">load</span>
|
334
|
-
<span class="ruby-ivar">@entry</span> = <span class="ruby-identifier">
|
258
|
+
<span class="ruby-ivar">@entry</span> = <span class="ruby-identifier">new_entry</span>(<span class="ruby-ivar">@file</span>)
|
335
259
|
<span class="ruby-keyword">end</span></pre>
|
336
260
|
</div>
|
337
|
-
|
338
261
|
</div>
|
339
262
|
|
340
|
-
|
341
263
|
|
342
|
-
|
343
264
|
</div>
|
344
265
|
|
345
|
-
|
346
266
|
</section>
|
347
|
-
|
267
|
+
|
348
268
|
<section id="public-instance-5Buntitled-5D-method-details" class="method-section">
|
349
269
|
<header>
|
350
270
|
<h3>Public Instance Methods</h3>
|
351
271
|
</header>
|
352
272
|
|
353
|
-
|
354
273
|
<div id="method-i-echo" class="method-detail ">
|
355
|
-
|
356
274
|
<div class="method-heading">
|
357
275
|
<span class="method-name">echo</span><span
|
358
276
|
class="method-args">(msg)</span>
|
359
|
-
|
360
277
|
<span class="method-click-advice">click to toggle source</span>
|
361
|
-
|
362
278
|
</div>
|
363
|
-
|
364
279
|
|
365
280
|
<div class="method-description">
|
366
|
-
|
367
281
|
<p>Quick access to <a href="Cli.html#method-c-echo"><code>Cli.echo</code></a>.</p>
|
368
282
|
|
369
283
|
<p>@return [nil]</p>
|
370
|
-
|
371
|
-
|
372
284
|
|
373
|
-
|
374
285
|
<div class="method-source-code" id="echo-source">
|
375
|
-
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line
|
286
|
+
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line 117</span>
|
376
287
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">echo</span>(<span class="ruby-identifier">msg</span>)
|
377
288
|
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">echo</span>(<span class="ruby-identifier">msg</span>)
|
378
289
|
<span class="ruby-keyword">end</span></pre>
|
379
290
|
</div>
|
380
|
-
|
381
291
|
</div>
|
382
292
|
|
383
|
-
|
384
293
|
|
385
|
-
|
386
294
|
</div>
|
387
295
|
|
388
|
-
|
389
296
|
<div id="method-i-edit" class="method-detail ">
|
390
|
-
|
391
297
|
<div class="method-heading">
|
392
298
|
<span class="method-name">edit</span><span
|
393
299
|
class="method-args">()</span>
|
394
|
-
|
395
300
|
<span class="method-click-advice">click to toggle source</span>
|
396
|
-
|
397
301
|
</div>
|
398
|
-
|
399
302
|
|
400
303
|
<div class="method-description">
|
401
|
-
|
402
304
|
<p>Opens the file in an editor. Abandons the script.</p>
|
403
305
|
|
404
306
|
<p>@return [nil]</p>
|
405
|
-
|
406
|
-
|
407
307
|
|
408
|
-
|
409
308
|
<div class="method-source-code" id="edit-source">
|
410
|
-
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line
|
309
|
+
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line 99</span>
|
411
310
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">edit</span>
|
412
311
|
<span class="ruby-identifier">echo</span> <span class="ruby-node">"Opening file in #{@config.editor}"</span>
|
413
312
|
<span class="ruby-identifier">exec</span>(<span class="ruby-node">"#{@config.editor} #{file.name}"</span>)
|
414
313
|
<span class="ruby-keyword">end</span></pre>
|
415
314
|
</div>
|
416
|
-
|
417
315
|
</div>
|
418
316
|
|
419
|
-
|
420
317
|
|
421
|
-
|
422
318
|
</div>
|
423
319
|
|
424
|
-
|
425
320
|
<div id="method-i-load_preferences" class="method-detail ">
|
426
|
-
|
427
321
|
<div class="method-heading">
|
428
322
|
<span class="method-name">load_preferences</span><span
|
429
323
|
class="method-args">()</span>
|
430
|
-
|
431
324
|
<span class="method-click-advice">click to toggle source</span>
|
432
|
-
|
433
325
|
</div>
|
434
|
-
|
435
326
|
|
436
327
|
<div class="method-description">
|
437
|
-
|
438
328
|
<p>Load the preference file.</p>
|
439
329
|
|
440
330
|
<p>@return [nil]</p>
|
441
|
-
|
442
|
-
|
443
331
|
|
444
|
-
|
445
332
|
<div class="method-source-code" id="load_preferences-source">
|
446
|
-
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line
|
333
|
+
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line 78</span>
|
447
334
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">load_preferences</span>
|
448
335
|
<span class="ruby-keyword">if</span> <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-ivar">@config</span>.<span class="ruby-identifier">preference_file</span>)
|
449
336
|
<span class="ruby-operator">::</span><span class="ruby-constant">StandupMD</span>.<span class="ruby-identifier">load_config_file</span>(<span class="ruby-ivar">@config</span>.<span class="ruby-identifier">preference_file</span>)
|
@@ -453,96 +340,67 @@
|
|
453
340
|
<span class="ruby-keyword">end</span>
|
454
341
|
<span class="ruby-keyword">end</span></pre>
|
455
342
|
</div>
|
456
|
-
|
457
343
|
</div>
|
458
344
|
|
459
|
-
|
460
345
|
|
461
|
-
|
462
346
|
</div>
|
463
347
|
|
464
|
-
|
465
348
|
<div id="method-i-preference_file_loaded-3F" class="method-detail ">
|
466
|
-
|
467
349
|
<div class="method-heading">
|
468
350
|
<span class="method-name">preference_file_loaded?</span><span
|
469
351
|
class="method-args">()</span>
|
470
|
-
|
471
352
|
<span class="method-click-advice">click to toggle source</span>
|
472
|
-
|
473
353
|
</div>
|
474
|
-
|
475
354
|
|
476
355
|
<div class="method-description">
|
477
|
-
|
478
356
|
<p>Has the preference file been loaded?</p>
|
479
357
|
|
480
358
|
<p>@return boolean</p>
|
481
|
-
|
482
|
-
|
483
359
|
|
484
|
-
|
485
360
|
<div class="method-source-code" id="preference_file_loaded-3F-source">
|
486
|
-
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line
|
361
|
+
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line 91</span>
|
487
362
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">preference_file_loaded?</span>
|
488
363
|
<span class="ruby-ivar">@preference_file_loaded</span>
|
489
364
|
<span class="ruby-keyword">end</span></pre>
|
490
365
|
</div>
|
491
|
-
|
492
366
|
</div>
|
493
367
|
|
494
|
-
|
495
368
|
|
496
|
-
|
497
369
|
</div>
|
498
370
|
|
499
|
-
|
500
371
|
<div id="method-i-write_file" class="method-detail ">
|
501
|
-
|
502
372
|
<div class="method-heading">
|
503
373
|
<span class="method-name">write_file</span><span
|
504
374
|
class="method-args">()</span>
|
505
|
-
|
506
375
|
<span class="method-click-advice">click to toggle source</span>
|
507
|
-
|
508
376
|
</div>
|
509
|
-
|
510
377
|
|
511
378
|
<div class="method-description">
|
512
|
-
|
513
379
|
<p>Writes entries to the file.</p>
|
514
380
|
|
515
381
|
<p>@return [Boolean] true if file was written</p>
|
516
|
-
|
517
|
-
|
518
382
|
|
519
|
-
|
520
383
|
<div class="method-source-code" id="write_file-source">
|
521
|
-
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line
|
384
|
+
<pre><span class="ruby-comment"># File lib/standup_md/cli.rb, line 108</span>
|
522
385
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">write_file</span>
|
523
386
|
<span class="ruby-identifier">echo</span> <span class="ruby-node">"Writing file #{file.name}"</span>
|
524
387
|
<span class="ruby-identifier">file</span>.<span class="ruby-identifier">write</span>
|
525
388
|
<span class="ruby-keyword">end</span></pre>
|
526
389
|
</div>
|
527
|
-
|
528
390
|
</div>
|
529
391
|
|
530
|
-
|
531
392
|
|
532
|
-
|
533
393
|
</div>
|
534
394
|
|
535
|
-
|
536
395
|
</section>
|
537
|
-
|
538
|
-
</section>
|
539
396
|
|
397
|
+
</section>
|
540
398
|
</main>
|
541
399
|
|
542
400
|
|
543
401
|
<footer id="validator-badges" role="contentinfo">
|
544
402
|
<p><a href="https://validator.w3.org/check/referer">Validate</a>
|
545
|
-
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.
|
403
|
+
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.0.
|
546
404
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
547
405
|
</footer>
|
548
406
|
|