Class: Event::Timed

Inherits:
Event
  • Object
show all
Defined in:
lib/event/timed.rb

Constant Summary

Constants inherited from Event

HOUR_DIVISORS, MINUTE_DIVISORS, SECOND_DIVISORS

Instance Attribute Summary collapse

Attributes inherited from Event

#count, #next, #previous, #scheduler, #start, #stop, #times

Instance Method Summary collapse

Methods inherited from Event

#<=>, #alter, at, #call, #due?, every, #extract_time_range, #finished, #finished?, #join, #off, #off?, #on, #on?, #one_done, #reschedule, #seconds_left, timed, #times_left, #to_f, #to_i, #update_scheduler

Constructor Details

#initialize(hours = [0], minutes = [0], seconds = [0], options = {}, &block) ⇒ Timed

Returns a new instance of Timed.



41
42
43
44
45
46
47
48
49
# File 'lib/event/timed.rb', line 41

def initialize(hours=[0], minutes=[0], seconds=[0], options={}, &block)
	super(options, &block)
	@original	= [hours.inspect, minutes.inspect, seconds.inspect]
	@indices  = [0,0,0]
	@hours    = extract_time_range(hours, 23, HOUR_DIVISORS).sort
	@minutes  = extract_time_range(minutes, 59, MINUTE_DIVISORS).sort
	@seconds  = extract_time_range(seconds, 59, SECOND_DIVISORS).sort
	@next     = calculate_first(@start)
end

Instance Attribute Details

#originalObject (readonly)

Returns the value of attribute original.



19
20
21
# File 'lib/event/timed.rb', line 19

def original
  @original
end

Instance Method Details

#hoursObject



51
52
53
# File 'lib/event/timed.rb', line 51

def hours
	@hours.dup
end

#inspectObject

A string representation. Just nice for printing.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/event/timed.rb', line 22

def inspect
	string = if off? then
		"Off"
	elsif finished? then
		"Finished"
	elsif left = seconds_left then
		"Due: %s (%.2fs)" %  [@next.strftime("%H:%M:%S"), left]
	else
		"Error"
	end

	"#<%s %s, %s done, timed for %s, %s, %s>" %  [
		self.class,
		string,
		@times ? "#{@count}/#{@times}" : @count,
		*@original
	]
end

#minutesObject



55
56
57
# File 'lib/event/timed.rb', line 55

def minutes
	@minutes.dup
end

#secondsObject



59
60
61
# File 'lib/event/timed.rb', line 59

def seconds
	@seconds.dup
end