Parent

Rufus::Scheduler::JobArray

The array rufus-scheduler uses to keep jobs in order (next to trigger first).

Public Class Methods

new() click to toggle source
# File lib/rufus/scheduler/job_array.rb, line 35
def initialize

  @mutex = Mutex.new
  @array = []
end

Public Instance Methods

[](job_id) click to toggle source
# File lib/rufus/scheduler/job_array.rb, line 77
def [](job_id)

  @mutex.synchronize { @array.find { |j| j.job_id == job_id } }
end
array() click to toggle source

Only used when shutting down, directly yields the underlying array.

# File lib/rufus/scheduler/job_array.rb, line 84
def array

  @array
end
delete_unscheduled() click to toggle source
# File lib/rufus/scheduler/job_array.rb, line 64
def delete_unscheduled

  @mutex.synchronize {

    @array.delete_if { |j| j.next_time.nil? || j.unscheduled_at }
  }
end
each(now, &block) click to toggle source
# File lib/rufus/scheduler/job_array.rb, line 53
def each(now, &block)

  to_a.sort_by { |j| j.next_time || (now + 1) }.each do |job|

    break unless job.next_time
    break if job.next_time > now

    block.call(job)
  end
end
push(job) click to toggle source
# File lib/rufus/scheduler/job_array.rb, line 41
def push(job)

  @mutex.synchronize { @array << job unless @array.index(job) }

  self
end
size() click to toggle source
# File lib/rufus/scheduler/job_array.rb, line 48
def size

  @array.size
end
to_a() click to toggle source
# File lib/rufus/scheduler/job_array.rb, line 72
def to_a

  @mutex.synchronize { @array.dup }
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.