standup_md 0.2.1 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,614 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+
7
+ <title>class StandupMD::File - RDoc Documentation</title>
8
+
9
+ <script type="text/javascript">
10
+ var rdoc_rel_prefix = "../";
11
+ var index_rel_prefix = "../";
12
+ </script>
13
+
14
+ <script src="../js/navigation.js" defer></script>
15
+ <script src="../js/search.js" defer></script>
16
+ <script src="../js/search_index.js" defer></script>
17
+ <script src="../js/searcher.js" defer></script>
18
+ <script src="../js/darkfish.js" defer></script>
19
+
20
+ <link href="../css/fonts.css" rel="stylesheet">
21
+ <link href="../css/rdoc.css" rel="stylesheet">
22
+
23
+
24
+
25
+
26
+ <body id="top" role="document" class="class">
27
+ <nav role="navigation">
28
+ <div id="project-navigation">
29
+ <div id="home-section" role="region" title="Quick navigation" class="nav-section">
30
+ <h2>
31
+ <a href="../index.html" rel="home">Home</a>
32
+ </h2>
33
+
34
+ <div id="table-of-contents-navigation">
35
+ <a href="../table_of_contents.html#pages">Pages</a>
36
+ <a href="../table_of_contents.html#classes">Classes</a>
37
+ <a href="../table_of_contents.html#methods">Methods</a>
38
+ </div>
39
+ </div>
40
+
41
+ <div id="search-section" role="search" class="project-section initially-hidden">
42
+ <form action="#" method="get" accept-charset="utf-8">
43
+ <div id="search-field-wrapper">
44
+ <input id="search-field" role="combobox" aria-label="Search"
45
+ aria-autocomplete="list" aria-controls="search-results"
46
+ type="text" name="search" placeholder="Search" spellcheck="false"
47
+ title="Type to search, Up and Down to navigate, Enter to load">
48
+ </div>
49
+
50
+ <ul id="search-results" aria-label="Search Results"
51
+ aria-busy="false" aria-expanded="false"
52
+ aria-atomic="false" class="initially-hidden"></ul>
53
+ </form>
54
+ </div>
55
+
56
+ </div>
57
+
58
+
59
+
60
+ <div id="class-metadata">
61
+
62
+ <div id="parent-class-section" class="nav-section">
63
+ <h3>Parent</h3>
64
+
65
+
66
+ <p class="link">Object
67
+
68
+ </div>
69
+
70
+
71
+
72
+ <!-- Method Quickref -->
73
+ <div id="method-list-section" class="nav-section">
74
+ <h3>Methods</h3>
75
+
76
+ <ul class="link-list" role="directory">
77
+
78
+ <li ><a href="#method-c-config">::config</a>
79
+
80
+ <li ><a href="#method-c-find">::find</a>
81
+
82
+ <li ><a href="#method-c-find_by_date">::find_by_date</a>
83
+
84
+ <li ><a href="#method-c-load">::load</a>
85
+
86
+ <li ><a href="#method-c-new">::new</a>
87
+
88
+ <li ><a href="#method-i-exist-3F">#exist?</a>
89
+
90
+ <li ><a href="#method-i-load">#load</a>
91
+
92
+ <li ><a href="#method-i-loaded-3F">#loaded?</a>
93
+
94
+ <li ><a href="#method-i-new-3F">#new?</a>
95
+
96
+ <li ><a href="#method-i-write">#write</a>
97
+
98
+ </ul>
99
+ </div>
100
+
101
+ </div>
102
+ </nav>
103
+
104
+ <main role="main" aria-labelledby="class-StandupMD::File">
105
+ <h1 id="class-StandupMD::File" class="class">
106
+ class StandupMD::File
107
+ </h1>
108
+
109
+ <section class="description">
110
+
111
+ <p>Class for handling reading and writing standup files.</p>
112
+
113
+ </section>
114
+
115
+
116
+ <section id="5Buntitled-5D" class="documentation-section">
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+ <section class="attribute-method-details" class="method-section">
125
+ <header>
126
+ <h3>Attributes</h3>
127
+ </header>
128
+
129
+
130
+ <div id="attribute-i-entries" class="method-detail">
131
+ <div class="method-heading attribute-method-heading">
132
+ <span class="method-name">entries</span><span
133
+ class="attribute-access-type">[R]</span>
134
+ </div>
135
+
136
+ <div class="method-description">
137
+
138
+ <p>The list of entries in the file.</p>
139
+
140
+ <p>@return [StandupMP::EntryList]</p>
141
+
142
+ </div>
143
+ </div>
144
+
145
+ <div id="attribute-i-name" class="method-detail">
146
+ <div class="method-heading attribute-method-heading">
147
+ <span class="method-name">name</span><span
148
+ class="attribute-access-type">[R]</span>
149
+ </div>
150
+
151
+ <div class="method-description">
152
+
153
+ <p>The name of the file.</p>
154
+
155
+ <p>@return [String]</p>
156
+
157
+ </div>
158
+ </div>
159
+
160
+ </section>
161
+
162
+
163
+
164
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section">
165
+ <header>
166
+ <h3>Public Class Methods</h3>
167
+ </header>
168
+
169
+
170
+ <div id="method-c-config" class="method-detail ">
171
+
172
+ <div class="method-heading">
173
+ <span class="method-name">config</span><span
174
+ class="method-args">()</span>
175
+
176
+ <span class="method-click-advice">click to toggle source</span>
177
+
178
+ </div>
179
+
180
+
181
+ <div class="method-description">
182
+
183
+ <p>Access to the class&#39;s configuration.</p>
184
+
185
+ <p>@return [StandupMD::Config::EntryList]</p>
186
+
187
+
188
+
189
+
190
+ <div class="method-source-code" id="config-source">
191
+ <pre><span class="ruby-comment"># File lib/standup_md/file.rb, line 18</span>
192
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">config</span>
193
+ <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">file</span>
194
+ <span class="ruby-keyword">end</span></pre>
195
+ </div>
196
+
197
+ </div>
198
+
199
+
200
+
201
+
202
+ </div>
203
+
204
+
205
+ <div id="method-c-find" class="method-detail ">
206
+
207
+ <div class="method-heading">
208
+ <span class="method-name">find</span><span
209
+ class="method-args">(file_name)</span>
210
+
211
+ <span class="method-click-advice">click to toggle source</span>
212
+
213
+ </div>
214
+
215
+
216
+ <div class="method-description">
217
+
218
+ <p>Find standup file in directory by file name.</p>
219
+
220
+ <p>@param [String] File_naem</p>
221
+
222
+
223
+
224
+
225
+ <div class="method-source-code" id="find-source">
226
+ <pre><span class="ruby-comment"># File lib/standup_md/file.rb, line 36</span>
227
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">find</span>(<span class="ruby-identifier">file_name</span>)
228
+ <span class="ruby-identifier">file</span> = <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">entries</span>(<span class="ruby-identifier">config</span>.<span class="ruby-identifier">directory</span>).<span class="ruby-identifier">bsearch</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">file_name</span> }
229
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">config</span>.<span class="ruby-identifier">create</span>
230
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;File #{file_name} not found.&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">create</span>
231
+ <span class="ruby-keyword">end</span>
232
+ <span class="ruby-identifier">new</span>(<span class="ruby-identifier">file_name</span>)
233
+ <span class="ruby-keyword">end</span></pre>
234
+ </div>
235
+
236
+ </div>
237
+
238
+
239
+
240
+
241
+ </div>
242
+
243
+
244
+ <div id="method-c-find_by_date" class="method-detail ">
245
+
246
+ <div class="method-heading">
247
+ <span class="method-name">find_by_date</span><span
248
+ class="method-args">(date)</span>
249
+
250
+ <span class="method-click-advice">click to toggle source</span>
251
+
252
+ </div>
253
+
254
+
255
+ <div class="method-description">
256
+
257
+ <p>Find standup file in directory by Date object.</p>
258
+
259
+ <p>@param [Date] date</p>
260
+
261
+
262
+
263
+
264
+ <div class="method-source-code" id="find_by_date-source">
265
+ <pre><span class="ruby-comment"># File lib/standup_md/file.rb, line 48</span>
266
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">find_by_date</span>(<span class="ruby-identifier">date</span>)
267
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">date</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Date</span>)
268
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-string">&quot;Argument must be a Date object&quot;</span>
269
+ <span class="ruby-keyword">end</span>
270
+ <span class="ruby-identifier">find</span>(<span class="ruby-identifier">date</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-identifier">config</span>.<span class="ruby-identifier">name_format</span>))
271
+ <span class="ruby-keyword">end</span></pre>
272
+ </div>
273
+
274
+ </div>
275
+
276
+
277
+
278
+
279
+ </div>
280
+
281
+
282
+ <div id="method-c-load" class="method-detail ">
283
+
284
+ <div class="method-heading">
285
+ <span class="method-name">load</span><span
286
+ class="method-args">(file_name)</span>
287
+
288
+ <span class="method-click-advice">click to toggle source</span>
289
+
290
+ </div>
291
+
292
+
293
+ <div class="method-description">
294
+
295
+ <p>Convenience method for calling <a href="File.html#method-c-find"><code>File.find(file_name)</code></a>.load</p>
296
+
297
+ <p>@param [String] file_name</p>
298
+
299
+ <p>@return [StandupMD::File]</p>
300
+
301
+
302
+
303
+
304
+ <div class="method-source-code" id="load-source">
305
+ <pre><span class="ruby-comment"># File lib/standup_md/file.rb, line 28</span>
306
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">load</span>(<span class="ruby-identifier">file_name</span>)
307
+ <span class="ruby-identifier">new</span>(<span class="ruby-identifier">file_name</span>).<span class="ruby-identifier">load</span>
308
+ <span class="ruby-keyword">end</span></pre>
309
+ </div>
310
+
311
+ </div>
312
+
313
+
314
+
315
+
316
+ </div>
317
+
318
+
319
+ <div id="method-c-new" class="method-detail ">
320
+
321
+ <div class="method-heading">
322
+ <span class="method-name">new</span><span
323
+ class="method-args">(file_name)</span>
324
+
325
+ <span class="method-click-advice">click to toggle source</span>
326
+
327
+ </div>
328
+
329
+
330
+ <div class="method-description">
331
+
332
+ <p>Constructs the instance.</p>
333
+
334
+ <p>@param [String] file_name</p>
335
+
336
+ <p>@return [StandupMP::File]</p>
337
+
338
+
339
+
340
+
341
+ <div class="method-source-code" id="new-source">
342
+ <pre><span class="ruby-comment"># File lib/standup_md/file.rb, line 73</span>
343
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">file_name</span>)
344
+ <span class="ruby-ivar">@config</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">config</span>
345
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">file_name</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-operator">::</span><span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">SEPARATOR</span>)
346
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>,
347
+ <span class="ruby-node">&quot;#{file_name} contains directory. Please use `StandupMD.config.file.directory=`&quot;</span>
348
+ <span class="ruby-keyword">end</span>
349
+
350
+ <span class="ruby-keyword">unless</span> <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-ivar">@config</span>.<span class="ruby-identifier">directory</span>)
351
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Dir #{@config.directory} not found.&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">create</span>
352
+ <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">mkdir_p</span>(<span class="ruby-ivar">@config</span>.<span class="ruby-identifier">directory</span>)
353
+ <span class="ruby-keyword">end</span>
354
+
355
+ <span class="ruby-ivar">@name</span> = <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@config</span>.<span class="ruby-identifier">directory</span>, <span class="ruby-identifier">file_name</span>))
356
+
357
+ <span class="ruby-keyword">unless</span> <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span>(<span class="ruby-ivar">@name</span>)
358
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;File #{@name} not found.&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">create</span>
359
+ <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">touch</span>(<span class="ruby-ivar">@name</span>)
360
+ <span class="ruby-keyword">end</span>
361
+
362
+ <span class="ruby-ivar">@new</span> = <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">zero?</span>(<span class="ruby-ivar">@name</span>)
363
+ <span class="ruby-ivar">@loaded</span> = <span class="ruby-keyword">false</span>
364
+ <span class="ruby-keyword">end</span></pre>
365
+ </div>
366
+
367
+ </div>
368
+
369
+
370
+
371
+
372
+ </div>
373
+
374
+
375
+ </section>
376
+
377
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
378
+ <header>
379
+ <h3>Public Instance Methods</h3>
380
+ </header>
381
+
382
+
383
+ <div id="method-i-exist-3F" class="method-detail ">
384
+
385
+ <div class="method-heading">
386
+ <span class="method-name">exist?</span><span
387
+ class="method-args">()</span>
388
+
389
+ <span class="method-click-advice">click to toggle source</span>
390
+
391
+ </div>
392
+
393
+
394
+ <div class="method-description">
395
+
396
+ <p>Does the file exist?</p>
397
+
398
+ <p>@return [Boolean] true if exists</p>
399
+
400
+
401
+
402
+
403
+ <div class="method-source-code" id="exist-3F-source">
404
+ <pre><span class="ruby-comment"># File lib/standup_md/file.rb, line 116</span>
405
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">exist?</span>
406
+ <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">name</span>)
407
+ <span class="ruby-keyword">end</span></pre>
408
+ </div>
409
+
410
+ </div>
411
+
412
+
413
+
414
+
415
+ </div>
416
+
417
+
418
+ <div id="method-i-load" class="method-detail ">
419
+
420
+ <div class="method-heading">
421
+ <span class="method-name">load</span><span
422
+ class="method-args">()</span>
423
+
424
+ <span class="method-click-advice">click to toggle source</span>
425
+
426
+ </div>
427
+
428
+
429
+ <div class="method-description">
430
+
431
+ <p>Loads the file&#39;s contents. TODO clean up this method.</p>
432
+
433
+ <p>@return [StandupMD::FileList]</p>
434
+
435
+
436
+
437
+
438
+ <div class="method-source-code" id="load-source">
439
+ <pre><span class="ruby-comment"># File lib/standup_md/file.rb, line 125</span>
440
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">load</span>
441
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;File #{name} does not exist.&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span>(<span class="ruby-identifier">name</span>)
442
+ <span class="ruby-identifier">entry_list</span> = <span class="ruby-constant">EntryList</span>.<span class="ruby-identifier">new</span>
443
+ <span class="ruby-identifier">record</span> = {}
444
+ <span class="ruby-identifier">section_type</span> = <span class="ruby-string">&#39;&#39;</span>
445
+ <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">foreach</span>(<span class="ruby-identifier">name</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
446
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">chomp!</span>
447
+ <span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">empty?</span>
448
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">is_header?</span>(<span class="ruby-identifier">line</span>)
449
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">empty?</span>
450
+ <span class="ruby-identifier">entry_list</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">new_entry</span>(<span class="ruby-identifier">record</span>)
451
+ <span class="ruby-identifier">record</span> = {}
452
+ <span class="ruby-keyword">end</span>
453
+ <span class="ruby-identifier">record</span>[<span class="ruby-string">&#39;header&#39;</span>] = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">%r{^\#{#{@config.header_depth}}\s*}</span>, <span class="ruby-string">&#39;&#39;</span>)
454
+ <span class="ruby-identifier">section_type</span> = <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">notes_header</span>
455
+ <span class="ruby-identifier">record</span>[<span class="ruby-identifier">section_type</span>] = []
456
+ <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">is_sub_header?</span>(<span class="ruby-identifier">line</span>)
457
+ <span class="ruby-identifier">section_type</span> = <span class="ruby-identifier">determine_section_type</span>(<span class="ruby-identifier">line</span>)
458
+ <span class="ruby-identifier">record</span>[<span class="ruby-identifier">section_type</span>] = []
459
+ <span class="ruby-keyword">else</span>
460
+ <span class="ruby-identifier">record</span>[<span class="ruby-identifier">section_type</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-identifier">bullet_character_regex</span>, <span class="ruby-string">&#39;&#39;</span>)
461
+ <span class="ruby-keyword">end</span>
462
+ <span class="ruby-keyword">end</span>
463
+ <span class="ruby-identifier">entry_list</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">new_entry</span>(<span class="ruby-identifier">record</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">empty?</span>
464
+ <span class="ruby-ivar">@loaded</span> = <span class="ruby-keyword">true</span>
465
+ <span class="ruby-ivar">@entries</span> = <span class="ruby-identifier">entry_list</span>.<span class="ruby-identifier">sort</span>
466
+ <span class="ruby-keyword">self</span>
467
+ <span class="ruby-keyword">rescue</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-identifier">e</span>
468
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;File malformation: #{e}&quot;</span>
469
+ <span class="ruby-keyword">end</span></pre>
470
+ </div>
471
+
472
+ </div>
473
+
474
+
475
+
476
+
477
+ </div>
478
+
479
+
480
+ <div id="method-i-loaded-3F" class="method-detail ">
481
+
482
+ <div class="method-heading">
483
+ <span class="method-name">loaded?</span><span
484
+ class="method-args">()</span>
485
+
486
+ <span class="method-click-advice">click to toggle source</span>
487
+
488
+ </div>
489
+
490
+
491
+ <div class="method-description">
492
+
493
+ <p>Has the file been loaded?</p>
494
+
495
+ <p>@return [Boolean] true if loaded</p>
496
+
497
+
498
+
499
+
500
+ <div class="method-source-code" id="loaded-3F-source">
501
+ <pre><span class="ruby-comment"># File lib/standup_md/file.rb, line 108</span>
502
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">loaded?</span>
503
+ <span class="ruby-ivar">@loaded</span>
504
+ <span class="ruby-keyword">end</span></pre>
505
+ </div>
506
+
507
+ </div>
508
+
509
+
510
+
511
+
512
+ </div>
513
+
514
+
515
+ <div id="method-i-new-3F" class="method-detail ">
516
+
517
+ <div class="method-heading">
518
+ <span class="method-name">new?</span><span
519
+ class="method-args">()</span>
520
+
521
+ <span class="method-click-advice">click to toggle source</span>
522
+
523
+ </div>
524
+
525
+
526
+ <div class="method-description">
527
+
528
+ <p>Was the file just now created?</p>
529
+
530
+ <p>@return [Boolean] true if new</p>
531
+
532
+
533
+
534
+
535
+ <div class="method-source-code" id="new-3F-source">
536
+ <pre><span class="ruby-comment"># File lib/standup_md/file.rb, line 100</span>
537
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">new?</span>
538
+ <span class="ruby-ivar">@new</span>
539
+ <span class="ruby-keyword">end</span></pre>
540
+ </div>
541
+
542
+ </div>
543
+
544
+
545
+
546
+
547
+ </div>
548
+
549
+
550
+ <div id="method-i-write" class="method-detail ">
551
+
552
+ <div class="method-heading">
553
+ <span class="method-name">write</span><span
554
+ class="method-args">(dates = {})</span>
555
+
556
+ <span class="method-click-advice">click to toggle source</span>
557
+
558
+ </div>
559
+
560
+
561
+ <div class="method-description">
562
+
563
+ <p>Writes a new entry to the file if the first entry in the file isn&#39;t today. This method is destructive; if a file for entries in the date range already exists, it will be clobbered with the entries in the range.</p>
564
+
565
+ <p>@param [Hash] start_and_end_date</p>
566
+
567
+ <p>@return [Boolean] true if successful</p>
568
+
569
+
570
+
571
+
572
+ <div class="method-source-code" id="write-source">
573
+ <pre><span class="ruby-comment"># File lib/standup_md/file.rb, line 164</span>
574
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">write</span>(<span class="ruby-identifier">dates</span> = {})
575
+ <span class="ruby-identifier">sorted_entries</span> = <span class="ruby-identifier">entries</span>.<span class="ruby-identifier">sort</span>
576
+ <span class="ruby-identifier">start_date</span> = <span class="ruby-identifier">dates</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-value">:start_date</span>, <span class="ruby-identifier">sorted_entries</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">date</span>)
577
+ <span class="ruby-identifier">end_date</span> = <span class="ruby-identifier">dates</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-value">:end_date</span>, <span class="ruby-identifier">sorted_entries</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">date</span>)
578
+ <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">name</span>, <span class="ruby-string">&#39;w&#39;</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
579
+ <span class="ruby-identifier">sorted_entries</span>.<span class="ruby-identifier">filter</span>(<span class="ruby-identifier">start_date</span>, <span class="ruby-identifier">end_date</span>).<span class="ruby-identifier">sort_reverse</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
580
+ <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">header</span>(<span class="ruby-identifier">entry</span>.<span class="ruby-identifier">date</span>)
581
+ <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">sub_header_order</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span>
582
+ <span class="ruby-identifier">tasks</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">attr</span>)
583
+ <span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">tasks</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">empty?</span>
584
+ <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">sub_header</span>(<span class="ruby-ivar">@config</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">&quot;#{attr}_header&quot;</span>).<span class="ruby-identifier">capitalize</span>)
585
+ <span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">bullet_character</span> <span class="ruby-operator">+</span> <span class="ruby-string">&#39; &#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">task</span> }
586
+ <span class="ruby-keyword">end</span>
587
+ <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span>
588
+ <span class="ruby-keyword">end</span>
589
+ <span class="ruby-keyword">end</span>
590
+ <span class="ruby-keyword">true</span>
591
+ <span class="ruby-keyword">end</span></pre>
592
+ </div>
593
+
594
+ </div>
595
+
596
+
597
+
598
+
599
+ </div>
600
+
601
+
602
+ </section>
603
+
604
+ </section>
605
+
606
+ </main>
607
+
608
+
609
+ <footer id="validator-badges" role="contentinfo">
610
+ <p><a href="https://validator.w3.org/check/referer">Validate</a>
611
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.2.1.
612
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
613
+ </footer>
614
+