class Portal::JobManager

@api private @since 0.1.0

Attributes

job_registry[R]

@return [Sidekiq::Portal::JobRegistry]

@api private @since 0.1.0

Public Class Methods

new(job_registry) click to toggle source

@param job_registry [Sidekiq::Portal::JobRegistry] @return [void]

@api private @since 0.1.0

# File lib/portal/job_manager.rb, line 13
def initialize(job_registry)
  @job_registry = job_registry
end

Public Instance Methods

each_job(&block) click to toggle source

@param block [Block] @yield [job] @yieldparam job [Sidekiq::Portal::Job] @return [Enumerable]

@api private @since 0.1.0

# File lib/portal/job_manager.rb, line 41
def each_job(&block)
  block_given? ? job_registry.each(&block) : job_registry.each
end
each_time_point(&block) click to toggle source

@param end_time [Time] @param block [Block] @yield time @yieldparam time [Time] @return [Enumerable]

@api private @since 0.1.0

# File lib/portal/job_manager.rb, line 67
def each_time_point(&block)
  block_given? ? time_points.each(&block) : time_points.each
end
resolve(job_klass) click to toggle source

@return [Sidekiq::Portal::Job]

@api private @since 0.1.0

# File lib/portal/job_manager.rb, line 30
def resolve(job_klass)
  job_registry.resolve(job_klass)
end
runnable?(job_klass) click to toggle source

@param job_klass [Class] @return [void]

@api private @since 0.1.0

# File lib/portal/job_manager.rb, line 22
def runnable?(job_klass)
  job_registry.include?(job_klass)
end
time_points() click to toggle source

@return [Array<Time>]

@api private @since 0.1.0

# File lib/portal/job_manager.rb, line 49
def time_points
  each_job
    .map(&:timeline)
    .map!(&:time_points)
    .tap(&:flatten!)
    .tap(&:sort!)
    .tap(&:uniq!)
    .tap { |points| points.select! { |point| point <= Time.current } }
end