time_span 0.0.1.alpha04 → 0.0.1.alpha05

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+