time_span 0.0.1.alpha04 → 0.0.1.alpha05

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.
@@ -66,6 +66,8 @@
66
66
 
67
67
  <li><a href="./TimeSpan/RelativeTime.html">TimeSpan::RelativeTime</a></li>
68
68
 
69
+ <li><a href="./TimeSpan/TimeLine.html">TimeSpan::TimeLine</a></li>
70
+
69
71
  <li><a href="./TimeSpan/TimeSpan.html">TimeSpan::TimeSpan</a></li>
70
72
 
71
73
  </ul>
@@ -66,6 +66,8 @@
66
66
 
67
67
  <li><a href="./TimeSpan/RelativeTime.html">TimeSpan::RelativeTime</a></li>
68
68
 
69
+ <li><a href="./TimeSpan/TimeLine.html">TimeSpan::TimeLine</a></li>
70
+
69
71
  <li><a href="./TimeSpan/TimeSpan.html">TimeSpan::TimeSpan</a></li>
70
72
 
71
73
  </ul>
@@ -60,6 +60,8 @@
60
60
 
61
61
  <li><span class="type">CLASS</span> <a href="TimeSpan/RelativeTime.html">TimeSpan::RelativeTime</a></li>
62
62
 
63
+ <li><span class="type">CLASS</span> <a href="TimeSpan/TimeLine.html">TimeSpan::TimeLine</a></li>
64
+
63
65
  <li><span class="type">CLASS</span> <a href="TimeSpan/TimeSpan.html">TimeSpan::TimeSpan</a></li>
64
66
 
65
67
  </ul>
@@ -105,6 +107,8 @@
105
107
 
106
108
  <li><a href="./TimeSpan/RelativeTime.html">TimeSpan::RelativeTime</a></li>
107
109
 
110
+ <li><a href="./TimeSpan/TimeLine.html">TimeSpan::TimeLine</a></li>
111
+
108
112
  <li><a href="./TimeSpan/TimeSpan.html">TimeSpan::TimeSpan</a></li>
109
113
 
110
114
  </ul>
@@ -120,6 +124,8 @@
120
124
 
121
125
  <div id="description" class="description">
122
126
 
127
+ <p>require “time_span/version”</p>
128
+
123
129
  </div><!-- description -->
124
130
 
125
131
 
@@ -50,7 +50,7 @@
50
50
  <div id="parent-class-section" class="section">
51
51
  <h3 class="section-header">Parent</h3>
52
52
 
53
- <p class="link">DateTime</p>
53
+ <p class="link">Object</p>
54
54
 
55
55
  </div>
56
56
 
@@ -60,6 +60,24 @@
60
60
 
61
61
 
62
62
 
63
+ <!-- Method Quickref -->
64
+ <div id="method-list-section" class="section">
65
+ <h3 class="section-header">Methods</h3>
66
+ <ul class="link-list">
67
+
68
+ <li><a href="#method-c-new">::new</a></li>
69
+
70
+ <li><a href="#method-i-colinear_with-3F">#colinear_with?</a></li>
71
+
72
+ <li><a href="#method-i-positioned-3F">#positioned?</a></li>
73
+
74
+ <li><a href="#method-i-to_s">#to_s</a></li>
75
+
76
+ <li><a href="#method-i-valid_and_comparable_with-3F">#valid_and_comparable_with?</a></li>
77
+
78
+ </ul>
79
+ </div>
80
+
63
81
 
64
82
 
65
83
  </div>
@@ -98,6 +116,8 @@
98
116
 
99
117
  <li><a href="../TimeSpan/RelativeTime.html">TimeSpan::RelativeTime</a></li>
100
118
 
119
+ <li><a href="../TimeSpan/TimeLine.html">TimeSpan::TimeLine</a></li>
120
+
101
121
  <li><a href="../TimeSpan/TimeSpan.html">TimeSpan::TimeSpan</a></li>
102
122
 
103
123
  </ul>
@@ -113,7 +133,20 @@
113
133
 
114
134
  <div id="description" class="description">
115
135
 
116
- <p>first implementation is just as DateTime; later add fuzzy time</p>
136
+ <pre>#</pre>
137
+
138
+ <p>A relative time must be able to be have equal times
139
+ # implemented as an Array of Arrays; all elements of the ‘subarray’ are
140
+ equal in time, # otherwise, the time relationship are based on position
141
+ in the main array #</p>
142
+
143
+ <pre>#</pre>
144
+
145
+ <p>diff cannot be done, it makes no sense, due to the fuzziness
146
+ #</p>
147
+
148
+ <pre> #
149
+ RelativeTime must be within a TimeLine #</pre>
117
150
 
118
151
  </div><!-- description -->
119
152
 
@@ -128,9 +161,234 @@
128
161
 
129
162
 
130
163
 
164
+ <!-- Attributes -->
165
+ <div id="attribute-method-details" class="method-section section">
166
+ <h3 class="section-header">Attributes</h3>
167
+
168
+
169
+ <div id="reference_to-attribute-method" class="method-detail">
170
+ <a name="reference_to"></a>
171
+
172
+ <a name="reference_to="></a>
173
+
174
+ <div class="method-heading attribute-method-heading">
175
+ <span class="method-name">reference_to</span><span
176
+ class="attribute-access-type">[RW]</span>
177
+ </div>
178
+
179
+ <div class="method-description">
180
+
181
+
182
+
183
+ </div>
184
+ </div>
185
+
186
+ <div id="timeline-attribute-method" class="method-detail">
187
+ <a name="timeline"></a>
188
+
189
+ <a name="timeline="></a>
190
+
191
+ <div class="method-heading attribute-method-heading">
192
+ <span class="method-name">timeline</span><span
193
+ class="attribute-access-type">[RW]</span>
194
+ </div>
195
+
196
+ <div class="method-description">
197
+
198
+
199
+
200
+ </div>
201
+ </div>
202
+
203
+ </div><!-- attribute-method-details -->
204
+
131
205
 
132
206
  <!-- Methods -->
133
207
 
208
+ <div id="public-class-method-details" class="method-section section">
209
+ <h3 class="section-header">Public Class Methods</h3>
210
+
211
+
212
+ <div id="new-method" class="method-detail ">
213
+ <a name="method-c-new"></a>
214
+
215
+
216
+ <div class="method-heading">
217
+ <span class="method-name">new</span><span
218
+ class="method-args">(tline, ref)</span>
219
+ <span class="method-click-advice">click to toggle source</span>
220
+ </div>
221
+
222
+
223
+ <div class="method-description">
224
+
225
+ <p>create a realtive time *within a timeline* after position</p>
226
+
227
+
228
+
229
+ <div class="method-source-code" id="new-source">
230
+ <pre>
231
+ <span class="ruby-comment"># File lib/time_span.rb, line 226</span>
232
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">tline</span>, <span class="ruby-identifier">ref</span>
233
+ <span class="ruby-ivar">@timeline</span>= <span class="ruby-identifier">tline</span>
234
+ <span class="ruby-ivar">@reference_to</span>= <span class="ruby-identifier">ref</span>
235
+ <span class="ruby-keyword">end</span></pre>
236
+ </div><!-- new-source -->
237
+
238
+ </div>
239
+
240
+
241
+
242
+
243
+ </div><!-- new-method -->
244
+
245
+
246
+ </div><!-- public-class-method-details -->
247
+
248
+ <div id="public-instance-method-details" class="method-section section">
249
+ <h3 class="section-header">Public Instance Methods</h3>
250
+
251
+
252
+ <div id="colinear_with-3F-method" class="method-detail ">
253
+ <a name="method-i-colinear_with-3F"></a>
254
+
255
+
256
+ <div class="method-heading">
257
+ <span class="method-name">colinear_with?</span><span
258
+ class="method-args">(b)</span>
259
+ <span class="method-click-advice">click to toggle source</span>
260
+ </div>
261
+
262
+
263
+ <div class="method-description">
264
+
265
+
266
+
267
+
268
+
269
+ <div class="method-source-code" id="colinear_with-3F-source">
270
+ <pre>
271
+ <span class="ruby-comment"># File lib/time_span.rb, line 247</span>
272
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">colinear_with?</span>(<span class="ruby-identifier">b</span>)
273
+ <span class="ruby-keyword">self</span>.<span class="ruby-identifier">timeline</span>.<span class="ruby-identifier">equal?</span>(<span class="ruby-identifier">b</span>.<span class="ruby-identifier">timeline</span>)
274
+ <span class="ruby-keyword">end</span></pre>
275
+ </div><!-- colinear_with-3F-source -->
276
+
277
+ </div>
278
+
279
+
280
+
281
+
282
+ </div><!-- colinear_with-3F-method -->
283
+
284
+
285
+ <div id="positioned-3F-method" class="method-detail ">
286
+ <a name="method-i-positioned-3F"></a>
287
+
288
+
289
+ <div class="method-heading">
290
+ <span class="method-name">positioned?</span><span
291
+ class="method-args">()</span>
292
+ <span class="method-click-advice">click to toggle source</span>
293
+ </div>
294
+
295
+
296
+ <div class="method-description">
297
+
298
+
299
+
300
+
301
+
302
+ <div class="method-source-code" id="positioned-3F-source">
303
+ <pre>
304
+ <span class="ruby-comment"># File lib/time_span.rb, line 243</span>
305
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">positioned?</span>
306
+ <span class="ruby-keyword">self</span>.<span class="ruby-identifier">timeline</span>.<span class="ruby-identifier">indices_of</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-keyword">self</span>)
307
+ <span class="ruby-keyword">end</span></pre>
308
+ </div><!-- positioned-3F-source -->
309
+
310
+ </div>
311
+
312
+
313
+
314
+
315
+ </div><!-- positioned-3F-method -->
316
+
317
+
318
+ <div id="to_s-method" class="method-detail ">
319
+ <a name="method-i-to_s"></a>
320
+
321
+
322
+ <div class="method-heading">
323
+ <span class="method-name">to_s</span><span
324
+ class="method-args">()</span>
325
+ <span class="method-click-advice">click to toggle source</span>
326
+ </div>
327
+
328
+
329
+ <div class="method-description">
330
+
331
+
332
+
333
+
334
+
335
+ <div class="method-source-code" id="to_s-source">
336
+ <pre>
337
+ <span class="ruby-comment"># File lib/time_span.rb, line 231</span>
338
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_s</span>
339
+ <span class="ruby-identifier">reference_to</span>.<span class="ruby-identifier">to_s</span>
340
+ <span class="ruby-keyword">end</span></pre>
341
+ </div><!-- to_s-source -->
342
+
343
+ </div>
344
+
345
+
346
+
347
+
348
+ </div><!-- to_s-method -->
349
+
350
+
351
+ </div><!-- public-instance-method-details -->
352
+
353
+ <div id="protected-instance-method-details" class="method-section section">
354
+ <h3 class="section-header">Protected Instance Methods</h3>
355
+
356
+
357
+ <div id="valid_and_comparable_with-3F-method" class="method-detail ">
358
+ <a name="method-i-valid_and_comparable_with-3F"></a>
359
+
360
+
361
+ <div class="method-heading">
362
+ <span class="method-name">valid_and_comparable_with?</span><span
363
+ class="method-args">(b)</span>
364
+ <span class="method-click-advice">click to toggle source</span>
365
+ </div>
366
+
367
+
368
+ <div class="method-description">
369
+
370
+
371
+
372
+
373
+
374
+ <div class="method-source-code" id="valid_and_comparable_with-3F-source">
375
+ <pre>
376
+ <span class="ruby-comment"># File lib/time_span.rb, line 254</span>
377
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">valid_and_comparable_with?</span>(<span class="ruby-identifier">b</span>)
378
+ <span class="ruby-operator">!</span><span class="ruby-keyword">self</span>.<span class="ruby-identifier">timeline</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">b</span>.<span class="ruby-identifier">timeline</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">colinear_with?</span>(<span class="ruby-identifier">b</span>)
379
+ <span class="ruby-keyword">end</span></pre>
380
+ </div><!-- valid_and_comparable_with-3F-source -->
381
+
382
+ </div>
383
+
384
+
385
+
386
+
387
+ </div><!-- valid_and_comparable_with-3F-method -->
388
+
389
+
390
+ </div><!-- protected-instance-method-details -->
391
+
134
392
  </div><!-- 5Buntitled-5D -->
135
393
 
136
394
 
@@ -0,0 +1,619 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: TimeSpan::TimeLine</title>
9
+
10
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
13
+ <script src="../js/thickbox-compressed.js" type="text/javascript" charset="utf-8"></script>
14
+ <script src="../js/quicksearch.js" type="text/javascript" charset="utf-8"></script>
15
+ <script src="../js/darkfish.js" type="text/javascript" charset="utf-8"></script>
16
+
17
+ </head>
18
+ <body id="top" class="class">
19
+
20
+ <div id="metadata">
21
+ <div id="home-metadata">
22
+ <div id="home-section" class="section">
23
+ <h3 class="section-header">
24
+ <a href="../index.html">Home</a>
25
+ <a href="../index.html#classes">Classes</a>
26
+ <a href="../index.html#methods">Methods</a>
27
+ </h3>
28
+ </div>
29
+ </div>
30
+
31
+ <div id="file-metadata">
32
+ <div id="file-list-section" class="section">
33
+ <h3 class="section-header">In Files</h3>
34
+ <div class="section-body">
35
+ <ul>
36
+
37
+ <li><a href="../lib/time_span_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
38
+ class="thickbox" title="lib/time_span.rb">lib/time_span.rb</a></li>
39
+
40
+ </ul>
41
+ </div>
42
+ </div>
43
+
44
+
45
+ </div>
46
+
47
+ <div id="class-metadata">
48
+
49
+ <!-- Parent Class -->
50
+ <div id="parent-class-section" class="section">
51
+ <h3 class="section-header">Parent</h3>
52
+
53
+ <p class="link">Array</p>
54
+
55
+ </div>
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+ <!-- Method Quickref -->
64
+ <div id="method-list-section" class="section">
65
+ <h3 class="section-header">Methods</h3>
66
+ <ul class="link-list">
67
+
68
+ <li><a href="#method-c-new">::new</a></li>
69
+
70
+ <li><a href="#method-i-append">#append</a></li>
71
+
72
+ <li><a href="#method-i-append_to_next">#append_to_next</a></li>
73
+
74
+ <li><a href="#method-i-compress-21">#compress!</a></li>
75
+
76
+ <li><a href="#method-i-increase_after">#increase_after</a></li>
77
+
78
+ <li><a href="#method-i-insert_at">#insert_at</a></li>
79
+
80
+ <li><a href="#method-i-insert_before_next">#insert_before_next</a></li>
81
+
82
+ <li><a href="#method-i-position_of">#position_of</a></li>
83
+
84
+ <li><a href="#method-i-remove">#remove</a></li>
85
+
86
+ <li><a href="#method-i-to_s">#to_s</a></li>
87
+
88
+ </ul>
89
+ </div>
90
+
91
+
92
+
93
+ </div>
94
+
95
+ <div id="project-metadata">
96
+
97
+
98
+ <div id="fileindex-section" class="section project-section">
99
+ <h3 class="section-header">Files</h3>
100
+ <ul>
101
+
102
+ <li class="file"><a href="../Gemfile.html">Gemfile</a></li>
103
+
104
+ <li class="file"><a href="../Rakefile.html">Rakefile</a></li>
105
+
106
+ </ul>
107
+ </div>
108
+
109
+
110
+ <div id="classindex-section" class="section project-section">
111
+ <h3 class="section-header">Class/Module Index
112
+ <span class="search-toggle"><img src="../images/find.png"
113
+ height="16" width="16" alt="[+]"
114
+ title="show/hide quicksearch" /></span></h3>
115
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
116
+ <fieldset>
117
+ <legend>Quicksearch</legend>
118
+ <input type="text" name="quicksearch" value=""
119
+ class="quicksearch-field" />
120
+ </fieldset>
121
+ </form>
122
+
123
+ <ul class="link-list">
124
+
125
+ <li><a href="../TimeSpan.html">TimeSpan</a></li>
126
+
127
+ <li><a href="../TimeSpan/RelativeTime.html">TimeSpan::RelativeTime</a></li>
128
+
129
+ <li><a href="../TimeSpan/TimeLine.html">TimeSpan::TimeLine</a></li>
130
+
131
+ <li><a href="../TimeSpan/TimeSpan.html">TimeSpan::TimeSpan</a></li>
132
+
133
+ </ul>
134
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
135
+ </div>
136
+
137
+
138
+ </div>
139
+ </div>
140
+
141
+ <div id="documentation">
142
+ <h1 class="class">TimeSpan::TimeLine</h1>
143
+
144
+ <div id="description" class="description">
145
+
146
+ </div><!-- description -->
147
+
148
+
149
+
150
+
151
+ <div id="5Buntitled-5D" class="documentation-section">
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+ <!-- Attributes -->
160
+ <div id="attribute-method-details" class="method-section section">
161
+ <h3 class="section-header">Attributes</h3>
162
+
163
+
164
+ <div id="indices_of-attribute-method" class="method-detail">
165
+ <a name="indices_of"></a>
166
+
167
+ <a name="indices_of="></a>
168
+
169
+ <div class="method-heading attribute-method-heading">
170
+ <span class="method-name">indices_of</span><span
171
+ class="attribute-access-type">[RW]</span>
172
+ </div>
173
+
174
+ <div class="method-description">
175
+
176
+
177
+
178
+ </div>
179
+ </div>
180
+
181
+ <div id="line-attribute-method" class="method-detail">
182
+ <a name="line"></a>
183
+
184
+ <a name="line="></a>
185
+
186
+ <div class="method-heading attribute-method-heading">
187
+ <span class="method-name">line</span><span
188
+ class="attribute-access-type">[RW]</span>
189
+ </div>
190
+
191
+ <div class="method-description">
192
+
193
+
194
+
195
+ </div>
196
+ </div>
197
+
198
+ <div id="name-attribute-method" class="method-detail">
199
+ <a name="name"></a>
200
+
201
+ <a name="name="></a>
202
+
203
+ <div class="method-heading attribute-method-heading">
204
+ <span class="method-name">name</span><span
205
+ class="attribute-access-type">[RW]</span>
206
+ </div>
207
+
208
+ <div class="method-description">
209
+
210
+
211
+
212
+ </div>
213
+ </div>
214
+
215
+ </div><!-- attribute-method-details -->
216
+
217
+
218
+ <!-- Methods -->
219
+
220
+ <div id="public-class-method-details" class="method-section section">
221
+ <h3 class="section-header">Public Class Methods</h3>
222
+
223
+
224
+ <div id="new-method" class="method-detail ">
225
+ <a name="method-c-new"></a>
226
+
227
+
228
+ <div class="method-heading">
229
+ <span class="method-name">new</span><span
230
+ class="method-args">(name="")</span>
231
+ <span class="method-click-advice">click to toggle source</span>
232
+ </div>
233
+
234
+
235
+ <div class="method-description">
236
+
237
+
238
+
239
+
240
+
241
+ <div class="method-source-code" id="new-source">
242
+ <pre>
243
+ <span class="ruby-comment"># File lib/time_span.rb, line 127</span>
244
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">name</span>=<span class="ruby-string">&quot;&quot;</span>)
245
+ <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
246
+ <span class="ruby-ivar">@line</span> = []
247
+ <span class="ruby-ivar">@indices_of</span> = {}
248
+ <span class="ruby-keyword">end</span></pre>
249
+ </div><!-- new-source -->
250
+
251
+ </div>
252
+
253
+
254
+
255
+
256
+ </div><!-- new-method -->
257
+
258
+
259
+ </div><!-- public-class-method-details -->
260
+
261
+ <div id="public-instance-method-details" class="method-section section">
262
+ <h3 class="section-header">Public Instance Methods</h3>
263
+
264
+
265
+ <div id="append-method" class="method-detail ">
266
+ <a name="method-i-append"></a>
267
+
268
+
269
+ <div class="method-heading">
270
+ <span class="method-name">append</span><span
271
+ class="method-args">(obj)</span>
272
+ <span class="method-click-advice">click to toggle source</span>
273
+ </div>
274
+
275
+
276
+ <div class="method-description">
277
+
278
+
279
+
280
+
281
+
282
+ <div class="method-source-code" id="append-source">
283
+ <pre>
284
+ <span class="ruby-comment"># File lib/time_span.rb, line 137</span>
285
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">append</span>(<span class="ruby-identifier">obj</span>)
286
+ <span class="ruby-identifier">insert_at</span>(<span class="ruby-ivar">@line</span>.<span class="ruby-identifier">size</span>, <span class="ruby-identifier">obj</span>)
287
+ <span class="ruby-keyword">end</span></pre>
288
+ </div><!-- append-source -->
289
+
290
+ </div>
291
+
292
+
293
+
294
+
295
+ </div><!-- append-method -->
296
+
297
+
298
+ <div id="append_to_next-method" class="method-detail ">
299
+ <a name="method-i-append_to_next"></a>
300
+
301
+
302
+ <div class="method-heading">
303
+ <span class="method-name">append_to_next</span><span
304
+ class="method-args">(relative_obj, obj, relative=1)</span>
305
+ <span class="method-click-advice">click to toggle source</span>
306
+ </div>
307
+
308
+
309
+ <div class="method-description">
310
+
311
+
312
+
313
+
314
+
315
+ <div class="method-source-code" id="append_to_next-source">
316
+ <pre>
317
+ <span class="ruby-comment"># File lib/time_span.rb, line 147</span>
318
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">append_to_next</span>(<span class="ruby-identifier">relative_obj</span>, <span class="ruby-identifier">obj</span>, <span class="ruby-identifier">relative</span>=<span class="ruby-value">1</span>)
319
+ <span class="ruby-identifier">insert_at</span>(<span class="ruby-identifier">position_of</span>(<span class="ruby-identifier">relative_obj</span>)<span class="ruby-operator">+</span><span class="ruby-identifier">relative</span>, <span class="ruby-identifier">obj</span>)
320
+ <span class="ruby-keyword">end</span></pre>
321
+ </div><!-- append_to_next-source -->
322
+
323
+ </div>
324
+
325
+
326
+
327
+
328
+ </div><!-- append_to_next-method -->
329
+
330
+
331
+ <div id="compress-21-method" class="method-detail ">
332
+ <a name="method-i-compress-21"></a>
333
+
334
+
335
+ <div class="method-heading">
336
+ <span class="method-name">compress!</span><span
337
+ class="method-args">()</span>
338
+ <span class="method-click-advice">click to toggle source</span>
339
+ </div>
340
+
341
+
342
+ <div class="method-description">
343
+
344
+ <p>removes all [] elements, and decrements accordingly the @<a
345
+ href="TimeLine.html#attribute-i-indices_of">indices_of</a></p>
346
+
347
+ <pre>ideally this should be transactional</pre>
348
+
349
+
350
+
351
+ <div class="method-source-code" id="compress-21-source">
352
+ <pre>
353
+ <span class="ruby-comment"># File lib/time_span.rb, line 187</span>
354
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">compress!</span>
355
+
356
+ <span class="ruby-identifier">mod_level</span> = <span class="ruby-value">0</span>
357
+ <span class="ruby-identifier">offsets</span> = []
358
+ <span class="ruby-value">0</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">line</span>.<span class="ruby-identifier">size</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
359
+ <span class="ruby-identifier">mod_level</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@line</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">empty?</span>
360
+ <span class="ruby-identifier">offsets</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">mod_level</span>
361
+ <span class="ruby-keyword">end</span>
362
+
363
+ <span class="ruby-comment">## poor man's transaction. Don't do directly on indices_of so less chance of interruption</span>
364
+ <span class="ruby-identifier">indices</span> = <span class="ruby-identifier">indices_of</span>
365
+
366
+ <span class="ruby-comment">## refactor to use increase_after</span>
367
+ <span class="ruby-identifier">indices</span>.<span class="ruby-identifier">each_key</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
368
+ <span class="ruby-identifier">indices</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">indices</span>[<span class="ruby-identifier">key</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">offsets</span>[<span class="ruby-identifier">indices</span>[<span class="ruby-identifier">key</span>]]
369
+ <span class="ruby-keyword">end</span>
370
+
371
+ <span class="ruby-identifier">indices_of</span> = <span class="ruby-identifier">indices</span>
372
+ <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">delete</span>([])
373
+ <span class="ruby-keyword">end</span></pre>
374
+ </div><!-- compress-21-source -->
375
+
376
+ </div>
377
+
378
+
379
+
380
+
381
+ </div><!-- compress-21-method -->
382
+
383
+
384
+ <div id="increase_after-method" class="method-detail ">
385
+ <a name="method-i-increase_after"></a>
386
+
387
+
388
+ <div class="method-heading">
389
+ <span class="method-name">increase_after</span><span
390
+ class="method-args">(pos, by=1)</span>
391
+ <span class="method-click-advice">click to toggle source</span>
392
+ </div>
393
+
394
+
395
+ <div class="method-description">
396
+
397
+
398
+
399
+
400
+
401
+ <div class="method-source-code" id="increase_after-source">
402
+ <pre>
403
+ <span class="ruby-comment"># File lib/time_span.rb, line 141</span>
404
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">increase_after</span>(<span class="ruby-identifier">pos</span>, <span class="ruby-identifier">by</span>=<span class="ruby-value">1</span>)
405
+ <span class="ruby-ivar">@indices_of</span>.<span class="ruby-identifier">each_key</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
406
+ <span class="ruby-ivar">@indices_of</span>[<span class="ruby-identifier">key</span>] <span class="ruby-operator">+=</span> <span class="ruby-identifier">by</span> <span class="ruby-keyword">if</span> (<span class="ruby-ivar">@indices_of</span>[<span class="ruby-identifier">key</span>] <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">pos</span>)
407
+ <span class="ruby-keyword">end</span>
408
+ <span class="ruby-keyword">end</span></pre>
409
+ </div><!-- increase_after-source -->
410
+
411
+ </div>
412
+
413
+
414
+
415
+
416
+ </div><!-- increase_after-method -->
417
+
418
+
419
+ <div id="insert_at-method" class="method-detail ">
420
+ <a name="method-i-insert_at"></a>
421
+
422
+
423
+ <div class="method-heading">
424
+ <span class="method-name">insert_at</span><span
425
+ class="method-args">(pos, obj)</span>
426
+ <span class="method-click-advice">click to toggle source</span>
427
+ </div>
428
+
429
+
430
+ <div class="method-description">
431
+
432
+ <p>needs work for <a href="RelativeTime.html">RelativeTime</a> objects</p>
433
+
434
+
435
+
436
+ <div class="method-source-code" id="insert_at-source">
437
+ <pre>
438
+ <span class="ruby-comment"># File lib/time_span.rb, line 159</span>
439
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">insert_at</span>(<span class="ruby-identifier">pos</span>, <span class="ruby-identifier">obj</span>)
440
+
441
+ <span class="ruby-identifier">raise</span> <span class="ruby-string">&quot;can only add a time to its own timeline&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">timeline</span>.<span class="ruby-identifier">equal?</span> <span class="ruby-keyword">self</span>
442
+ <span class="ruby-keyword">if</span> <span class="ruby-ivar">@line</span>[<span class="ruby-identifier">pos</span>].<span class="ruby-identifier">nil?</span>
443
+ <span class="ruby-ivar">@line</span>[<span class="ruby-identifier">pos</span>] = [<span class="ruby-identifier">obj</span>]
444
+ <span class="ruby-ivar">@indices_of</span>[<span class="ruby-identifier">obj</span>] = <span class="ruby-identifier">pos</span>
445
+ <span class="ruby-keyword">else</span>
446
+ <span class="ruby-identifier">op</span> = <span class="ruby-ivar">@line</span>[<span class="ruby-identifier">pos</span>].<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Array</span>) <span class="ruby-operator">?</span> <span class="ruby-string">'&lt;&lt;'</span> <span class="ruby-operator">:</span> <span class="ruby-string">'='</span>
447
+ <span class="ruby-ivar">@line</span>[<span class="ruby-identifier">pos</span>].<span class="ruby-identifier">send</span>(<span class="ruby-identifier">op</span>.<span class="ruby-identifier">to_sym</span>, <span class="ruby-identifier">obj</span>) <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@line</span>[<span class="ruby-identifier">pos</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">obj</span>) <span class="ruby-comment"># no dupliates</span>
448
+ <span class="ruby-ivar">@indices_of</span>[<span class="ruby-identifier">obj</span>] = <span class="ruby-identifier">pos</span> <span class="ruby-comment"># dup overwrites</span>
449
+ <span class="ruby-keyword">end</span>
450
+ <span class="ruby-keyword">end</span></pre>
451
+ </div><!-- insert_at-source -->
452
+
453
+ </div>
454
+
455
+
456
+
457
+
458
+ </div><!-- insert_at-method -->
459
+
460
+
461
+ <div id="insert_before_next-method" class="method-detail ">
462
+ <a name="method-i-insert_before_next"></a>
463
+
464
+
465
+ <div class="method-heading">
466
+ <span class="method-name">insert_before_next</span><span
467
+ class="method-args">(relative_obj, obj, relative_offset=1)</span>
468
+ <span class="method-click-advice">click to toggle source</span>
469
+ </div>
470
+
471
+
472
+ <div class="method-description">
473
+
474
+
475
+
476
+
477
+
478
+ <div class="method-source-code" id="insert_before_next-source">
479
+ <pre>
480
+ <span class="ruby-comment"># File lib/time_span.rb, line 151</span>
481
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">insert_before_next</span>(<span class="ruby-identifier">relative_obj</span>, <span class="ruby-identifier">obj</span>, <span class="ruby-identifier">relative_offset</span>=<span class="ruby-value">1</span>)
482
+ <span class="ruby-identifier">relative_position</span> = <span class="ruby-identifier">position_of</span>(<span class="ruby-identifier">relative_obj</span>)
483
+ <span class="ruby-identifier">increase_after</span>(<span class="ruby-identifier">relative_position</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">relative_offset</span>, <span class="ruby-identifier">relative_offset</span>)
484
+ <span class="ruby-ivar">@line</span>[<span class="ruby-identifier">relative_position</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">relative_offset</span>,<span class="ruby-value">0</span>] = <span class="ruby-keyword">nil</span>
485
+ <span class="ruby-identifier">insert_at</span>(<span class="ruby-identifier">relative_position</span><span class="ruby-operator">+</span><span class="ruby-identifier">relative_offset</span>, <span class="ruby-identifier">obj</span>)
486
+ <span class="ruby-keyword">end</span></pre>
487
+ </div><!-- insert_before_next-source -->
488
+
489
+ </div>
490
+
491
+
492
+
493
+
494
+ </div><!-- insert_before_next-method -->
495
+
496
+
497
+ <div id="position_of-method" class="method-detail ">
498
+ <a name="method-i-position_of"></a>
499
+
500
+
501
+ <div class="method-heading">
502
+ <span class="method-name">position_of</span><span
503
+ class="method-args">(obj)</span>
504
+ <span class="method-click-advice">click to toggle source</span>
505
+ </div>
506
+
507
+
508
+ <div class="method-description">
509
+
510
+
511
+
512
+
513
+
514
+ <div class="method-source-code" id="position_of-source">
515
+ <pre>
516
+ <span class="ruby-comment"># File lib/time_span.rb, line 133</span>
517
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">position_of</span>(<span class="ruby-identifier">obj</span>)
518
+ <span class="ruby-ivar">@indices_of</span>[<span class="ruby-identifier">obj</span>]
519
+ <span class="ruby-keyword">end</span></pre>
520
+ </div><!-- position_of-source -->
521
+
522
+ </div>
523
+
524
+
525
+
526
+
527
+ </div><!-- position_of-method -->
528
+
529
+
530
+ <div id="remove-method" class="method-detail ">
531
+ <a name="method-i-remove"></a>
532
+
533
+
534
+ <div class="method-heading">
535
+ <span class="method-name">remove</span><span
536
+ class="method-args">(obj)</span>
537
+ <span class="method-click-advice">click to toggle source</span>
538
+ </div>
539
+
540
+
541
+ <div class="method-description">
542
+
543
+
544
+
545
+
546
+
547
+ <div class="method-source-code" id="remove-source">
548
+ <pre>
549
+ <span class="ruby-comment"># File lib/time_span.rb, line 172</span>
550
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">remove</span>(<span class="ruby-identifier">obj</span>)
551
+ <span class="ruby-comment"># cannot remove [] or the @indices_of will be wrong</span>
552
+ <span class="ruby-comment"># call to #compress to remove the extra []s</span>
553
+ <span class="ruby-identifier">pos</span> = <span class="ruby-identifier">position_of</span>(<span class="ruby-identifier">obj</span>)
554
+
555
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">pos</span> <span class="ruby-comment"># do nothing if it isn't there'</span>
556
+ <span class="ruby-ivar">@line</span>[<span class="ruby-identifier">pos</span>].<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">obj</span>)
557
+ <span class="ruby-ivar">@indices_of</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">obj</span>)
558
+ <span class="ruby-keyword">end</span>
559
+
560
+ <span class="ruby-keyword">end</span></pre>
561
+ </div><!-- remove-source -->
562
+
563
+ </div>
564
+
565
+
566
+
567
+
568
+ </div><!-- remove-method -->
569
+
570
+
571
+ <div id="to_s-method" class="method-detail ">
572
+ <a name="method-i-to_s"></a>
573
+
574
+
575
+ <div class="method-heading">
576
+ <span class="method-name">to_s</span><span
577
+ class="method-args">()</span>
578
+ <span class="method-click-advice">click to toggle source</span>
579
+ </div>
580
+
581
+
582
+ <div class="method-description">
583
+
584
+
585
+
586
+
587
+
588
+ <div class="method-source-code" id="to_s-source">
589
+ <pre>
590
+ <span class="ruby-comment"># File lib/time_span.rb, line 123</span>
591
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_s</span>
592
+ <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>
593
+ <span class="ruby-keyword">end</span></pre>
594
+ </div><!-- to_s-source -->
595
+
596
+ </div>
597
+
598
+
599
+
600
+
601
+ </div><!-- to_s-method -->
602
+
603
+
604
+ </div><!-- public-instance-method-details -->
605
+
606
+ </div><!-- 5Buntitled-5D -->
607
+
608
+
609
+ </div><!-- documentation -->
610
+
611
+ <div id="validator-badges">
612
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
613
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
614
+ Rdoc Generator</a> 2</small>.</p>
615
+ </div>
616
+
617
+ </body>
618
+ </html>
619
+