acts_as_flux_capacitor 0.5.3 → 0.5.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.
data/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ == 0.5.3 2008-05-21
2
+
3
+ * Fixed git stuff
4
+ * Fixed more newgem config stuff
5
+ * add the most basic of documentation
6
+
1
7
  == 0.5.2 2008-05-21
2
8
 
3
9
  * Fixed rakefiles b/c of odd VERSION module naming
@@ -290,7 +290,7 @@ private
290
290
  module CompareEvents
291
291
  def overlaps_with?(other_event)
292
292
  #this method possesses the associative property.
293
- self.to_range.overlap?(other_event.to_range)
293
+ self.to_range.overlaps?(other_event.to_range)
294
294
  end
295
295
 
296
296
  def overlap_with(other_event)
@@ -1,22 +1,19 @@
1
1
  class Range
2
2
 
3
- # the overlap?(range) method and most of its tests were written by Jack Christensen
3
+ # the overlaps?(range) method comes from ActiveSupport::CoreExtensions::Range
4
+ # thanks to Nick Ang for suggesting its use.
5
+ # most of its tests were written by Jack Christensen of
4
6
  # http://www.jackchristensen.com/article/2/detecting-overlapping-ranges
5
7
 
6
8
  # Returns true if ranges overlap, false otherwise
7
- def overlap?( other_range )
8
- not(
9
- last < other_range.first ||
10
- (last == other_range.first && exclude_end?) ||
11
- other_range.last < first ||
12
- (other_range.last == first && other_range.exclude_end?)
13
- )
9
+ def overlaps? other
10
+ include?(other.first) || other.include?(first)
14
11
  end
15
12
 
16
13
  # all of this added by jim cropcho:
17
14
 
18
15
  def overlap(other_range)
19
- return 0 unless self.overlap?(other_range)
16
+ return 0 unless self.overlaps?(other_range)
20
17
 
21
18
  overlap_range = greater_of(self.first,other_range.first)..smaller_of(self.last,other_range.last)
22
19
  # puts "overlap range: #{overlap_range}"
@@ -55,4 +52,4 @@ private
55
52
  def smaller_of(num1,num2)
56
53
  num1 < num2 ? num1 : num2
57
54
  end
58
- end
55
+ end
@@ -5,7 +5,7 @@ module HolmesLabs #:nodoc:
5
5
 
6
6
  MAJOR = 0
7
7
  MINOR = 5
8
- TINY = 3
8
+ TINY = 4
9
9
 
10
10
  STRING = [MAJOR, MINOR, TINY].join('.')
11
11
 
@@ -188,3 +188,56 @@ describe "The TimePeriod modification helpers" do
188
188
  end
189
189
 
190
190
  end
191
+
192
+ describe "The Range overlap helpers" do
193
+
194
+ it "should determine if two ranges do not overlap" do
195
+ # 1-------10
196
+ # 20-------30
197
+ (1..10).overlaps?(20..30).should be_false
198
+ (1..10).overlap(20..30).should eql(0)
199
+
200
+ # 20-------30
201
+ # 1-------10
202
+ (20..30).overlaps?(1..10).should be_false
203
+ (20..30).overlap(1..10).should eql(0)
204
+
205
+ # 1-------10
206
+ # 10-------20
207
+ (1...10).overlaps?(10..20).should be_false
208
+ (1...10).overlap(10..20).should eql(0)
209
+ end
210
+
211
+ it "should determine if two ranges do overlap" do
212
+ tolerance = 0.01
213
+
214
+ # 1-------10
215
+ # 10-------20
216
+ (1..10).overlaps?(10..20).should be_true
217
+ (1..10).overlap(10..20).size.should be_close(1.0,tolerance)
218
+
219
+ # 1-----------15
220
+ # 10-------20
221
+ (1..15).overlaps?(10..20).should be_true
222
+ (1..15).overlap(10..20).size.should be_close(6.0,tolerance)
223
+
224
+ # 5--------15
225
+ # 1-------10
226
+ (5..15).overlaps?(1..10).should be_true
227
+ (5..15).overlap(1..10).size.should be_close(6.0,tolerance)
228
+
229
+ # 10--------20
230
+ # 1-------10
231
+ (10..20).overlaps?(1..10).should be_true
232
+ (10..20).overlap(1..10).size.should be_close(1.0,tolerance)
233
+
234
+ # 1-----------------20
235
+ # 5---------15
236
+ (1..20).overlaps?(5..15).should be_true
237
+ (1..20).overlap(5..15).size.should be_close(11.0,tolerance)
238
+
239
+ (5..15).overlaps?(1..20).should be_true
240
+ (5..15).overlap(1..20).size.should be_close(11.0,tolerance)
241
+ end
242
+
243
+ end
data/spec/report.html CHANGED
@@ -179,95 +179,104 @@ a {
179
179
  <div class="example_group">
180
180
  <dl>
181
181
  <dt id="example_group_1">The Temporal mixin</dt>
182
- <script type="text/javascript">moveProgressBar('3.3');</script>
182
+ <script type="text/javascript">moveProgressBar('3.1');</script>
183
183
  <dd class="spec passed"><span class="passed_spec_name">should make Time, Date and DateTime into Temporal objects</span></dd>
184
- <script type="text/javascript">moveProgressBar('6.6');</script>
184
+ <script type="text/javascript">moveProgressBar('6.2');</script>
185
185
  <dd class="spec passed"><span class="passed_spec_name">should determine the length of time between two Temporal objects</span></dd>
186
- <script type="text/javascript">moveProgressBar('10.0');</script>
186
+ <script type="text/javascript">moveProgressBar('9.3');</script>
187
187
  <dd class="spec passed"><span class="passed_spec_name">should determine the length of time until a Temporal object</span></dd>
188
- <script type="text/javascript">moveProgressBar('13.3');</script>
188
+ <script type="text/javascript">moveProgressBar('12.5');</script>
189
189
  <dd class="spec passed"><span class="passed_spec_name">should determine if a temporal object is in the future</span></dd>
190
- <script type="text/javascript">moveProgressBar('16.6');</script>
190
+ <script type="text/javascript">moveProgressBar('15.6');</script>
191
191
  <dd class="spec passed"><span class="passed_spec_name">should determine the length of time since a Temporal object</span></dd>
192
- <script type="text/javascript">moveProgressBar('20.0');</script>
192
+ <script type="text/javascript">moveProgressBar('18.7');</script>
193
193
  <dd class="spec passed"><span class="passed_spec_name">should determine if a temporal object is in the past</span></dd>
194
- <script type="text/javascript">moveProgressBar('23.3');</script>
194
+ <script type="text/javascript">moveProgressBar('21.8');</script>
195
195
  <dd class="spec passed"><span class="passed_spec_name">should determine if one Temporal object is before another</span></dd>
196
- <script type="text/javascript">moveProgressBar('26.6');</script>
196
+ <script type="text/javascript">moveProgressBar('25.0');</script>
197
197
  <dd class="spec passed"><span class="passed_spec_name">should determine if one Temporal object is after another</span></dd>
198
198
  </dl>
199
199
  </div>
200
200
  <div class="example_group">
201
201
  <dl>
202
202
  <dt id="example_group_2">The class TimePeriod &lt; ActiveRecord::Base</dt>
203
- <script type="text/javascript">moveProgressBar('30.0');</script>
203
+ <script type="text/javascript">moveProgressBar('28.1');</script>
204
204
  <dd class="spec passed"><span class="passed_spec_name">should be a flux capacitor</span></dd>
205
- <script type="text/javascript">moveProgressBar('33.3');</script>
205
+ <script type="text/javascript">moveProgressBar('31.2');</script>
206
206
  <dd class="spec passed"><span class="passed_spec_name">should be a Temporal object</span></dd>
207
- <script type="text/javascript">moveProgressBar('36.6');</script>
207
+ <script type="text/javascript">moveProgressBar('34.3');</script>
208
208
  <dd class="spec passed"><span class="passed_spec_name">should possess all four bitemporal database attributes</span></dd>
209
- <script type="text/javascript">moveProgressBar('40.0');</script>
209
+ <script type="text/javascript">moveProgressBar('37.5');</script>
210
210
  <dd class="spec passed"><span class="passed_spec_name">should not be valid if either of the two time spans are 0 or less</span></dd>
211
211
  </dl>
212
212
  </div>
213
213
  <div class="example_group">
214
214
  <dl>
215
215
  <dt id="example_group_3">The TimePeriod.find extensions</dt>
216
- <script type="text/javascript">moveProgressBar('43.3');</script>
216
+ <script type="text/javascript">moveProgressBar('40.6');</script>
217
217
  <dd class="spec passed"><span class="passed_spec_name">should find time_periods in the present</span></dd>
218
- <script type="text/javascript">moveProgressBar('46.6');</script>
218
+ <script type="text/javascript">moveProgressBar('43.7');</script>
219
219
  <dd class="spec passed"><span class="passed_spec_name">should find time_periods in the past</span></dd>
220
- <script type="text/javascript">moveProgressBar('50.0');</script>
220
+ <script type="text/javascript">moveProgressBar('46.8');</script>
221
221
  <dd class="spec passed"><span class="passed_spec_name">should find time_periods in the future</span></dd>
222
- <script type="text/javascript">moveProgressBar('53.3');</script>
222
+ <script type="text/javascript">moveProgressBar('50.0');</script>
223
223
  <dd class="spec passed"><span class="passed_spec_name">should find time_periods occuring at a specific time</span></dd>
224
- <script type="text/javascript">moveProgressBar('56.6');</script>
224
+ <script type="text/javascript">moveProgressBar('53.1');</script>
225
225
  <dd class="spec passed"><span class="passed_spec_name">should find time_periods occuring within a specific range of time</span></dd>
226
226
  </dl>
227
227
  </div>
228
228
  <div class="example_group">
229
229
  <dl>
230
230
  <dt id="example_group_4">The TimePeriod comparison helpers</dt>
231
- <script type="text/javascript">moveProgressBar('60.0');</script>
231
+ <script type="text/javascript">moveProgressBar('56.2');</script>
232
232
  <dd class="spec passed"><span class="passed_spec_name">should calculate the time between time_periods</span></dd>
233
- <script type="text/javascript">moveProgressBar('63.3');</script>
233
+ <script type="text/javascript">moveProgressBar('59.3');</script>
234
234
  <dd class="spec passed"><span class="passed_spec_name">should determine whether two time_periods overlap</span></dd>
235
- <script type="text/javascript">moveProgressBar('66.6');</script>
235
+ <script type="text/javascript">moveProgressBar('62.5');</script>
236
236
  <dd class="spec passed"><span class="passed_spec_name">should determine the length of time by which two time_periods overlap</span></dd>
237
- <script type="text/javascript">moveProgressBar('70.0');</script>
237
+ <script type="text/javascript">moveProgressBar('65.6');</script>
238
238
  <dd class="spec passed"><span class="passed_spec_name">should determine if two time_periods are back-to-back</span></dd>
239
- <script type="text/javascript">moveProgressBar('73.3');</script>
239
+ <script type="text/javascript">moveProgressBar('68.7');</script>
240
240
  <dd class="spec passed"><span class="passed_spec_name">should determine if a time_period is between two other time_periods</span></dd>
241
241
  </dl>
242
242
  </div>
243
243
  <div class="example_group">
244
244
  <dl>
245
245
  <dt id="example_group_5">The TimePeriod status helpers</dt>
246
- <script type="text/javascript">moveProgressBar('76.6');</script>
246
+ <script type="text/javascript">moveProgressBar('71.8');</script>
247
247
  <dd class="spec passed"><span class="passed_spec_name">should determine if a time_period has started</span></dd>
248
- <script type="text/javascript">moveProgressBar('80.0');</script>
248
+ <script type="text/javascript">moveProgressBar('75.0');</script>
249
249
  <dd class="spec passed"><span class="passed_spec_name">should determine how much time has elapsed since an event started</span></dd>
250
- <script type="text/javascript">moveProgressBar('83.3');</script>
250
+ <script type="text/javascript">moveProgressBar('78.1');</script>
251
251
  <dd class="spec passed"><span class="passed_spec_name">should determine what percentage of time has elapsed since an event started</span></dd>
252
- <script type="text/javascript">moveProgressBar('86.6');</script>
252
+ <script type="text/javascript">moveProgressBar('81.2');</script>
253
253
  <dd class="spec passed"><span class="passed_spec_name">should determine how much time is remaining until an event ends</span></dd>
254
- <script type="text/javascript">moveProgressBar('90.0');</script>
254
+ <script type="text/javascript">moveProgressBar('84.3');</script>
255
255
  <dd class="spec passed"><span class="passed_spec_name">should determine what percentage of time is remaining until an event ends</span></dd>
256
- <script type="text/javascript">moveProgressBar('93.3');</script>
256
+ <script type="text/javascript">moveProgressBar('87.5');</script>
257
257
  <dd class="spec passed"><span class="passed_spec_name">should determine if a time_period has ended</span></dd>
258
- <script type="text/javascript">moveProgressBar('96.6');</script>
258
+ <script type="text/javascript">moveProgressBar('90.6');</script>
259
259
  <dd class="spec passed"><span class="passed_spec_name">should determine the duration of a time_period</span></dd>
260
260
  </dl>
261
261
  </div>
262
262
  <div class="example_group">
263
263
  <dl>
264
264
  <dt id="example_group_6">The TimePeriod modification helpers</dt>
265
- <script type="text/javascript">moveProgressBar('100.0');</script>
265
+ <script type="text/javascript">moveProgressBar('93.7');</script>
266
266
  <dd class="spec passed"><span class="passed_spec_name">should shift a time_period into the past or future</span></dd>
267
267
  </dl>
268
268
  </div>
269
- <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>0.280847 seconds</strong>";</script>
270
- <script type="text/javascript">document.getElementById('totals').innerHTML = "30 examples, 0 failures";</script>
269
+ <div class="example_group">
270
+ <dl>
271
+ <dt id="example_group_7">The Range overlap helpers</dt>
272
+ <script type="text/javascript">moveProgressBar('96.8');</script>
273
+ <dd class="spec passed"><span class="passed_spec_name">should determine if two ranges do not overlap</span></dd>
274
+ <script type="text/javascript">moveProgressBar('100.0');</script>
275
+ <dd class="spec passed"><span class="passed_spec_name">should determine if two ranges do overlap</span></dd>
276
+ </dl>
277
+ </div>
278
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>0.321167 seconds</strong>";</script>
279
+ <script type="text/javascript">document.getElementById('totals').innerHTML = "32 examples, 0 failures";</script>
271
280
  </div>
272
281
  </div>
273
282
  </body>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_flux_capacitor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Cropcho
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-05-21 00:00:00 -04:00
12
+ date: 2008-05-22 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15