class Fortune::EventList
Attributes
intervals[RW]
n[RW]
sum_m[RW]
Public Class Methods
new(h = {})
click to toggle source
# File lib/fortune/event_list.rb, line 5 def initialize(h = {}) h.each{|name, m| self.push(Event.new({:name => name, :m => m}))} @sum_m = 0 @intervals = {} end
Public Instance Methods
active()
click to toggle source
# File lib/fortune/event_list.rb, line 40 def active self.select{|event| event.has_come?}.first end
calc()
click to toggle source
# File lib/fortune/event_list.rb, line 10 def calc self.calc_sum_m self.calc_intervals self.get_n self.set_active self end
calc_intervals()
click to toggle source
# File lib/fortune/event_list.rb, line 32 def calc_intervals x = 0 self.map{|event| next if event.m <= 0 self.intervals[event.name] = [x + 1, x + event.m] x = x + event.m } end
calc_sum_m()
click to toggle source
# File lib/fortune/event_list.rb, line 26 def calc_sum_m self.map{|event| next if event.m <= 0 self.sum_m += event.m } end
get_n()
click to toggle source
# File lib/fortune/event_list.rb, line 23 def get_n @n = P.n(self.sum_m) end
set_active()
click to toggle source
# File lib/fortune/event_list.rb, line 17 def set_active self.map{|event| next if event.m <= 0 event.set_come if self.n >= intervals[event.name][0] && self.n <= intervals[event.name][1] } end