acts_as_flux_capacitor 0.5.3 → 0.5.4

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