Sha256: ff6d70f45ab01363d6b1f8d5d76af100bbf2a527a01c1df3bfa9b627d1ee6841
Contents?: true
Size: 1.3 KB
Versions: 17
Compression:
Stored size: 1.3 KB
Contents
# frozen_string_literal: true module Karafka module Web module Ui module Models # Model representing group of jobs # # It simplifies filtering on running jobs and others, etc class Jobs include Enumerable extend Forwardable # Last three methods are needed to provide sorting def_delegators :@jobs_array, :empty?, :size, :map!, :sort_by!, :reverse! # @param jobs_array [Array<Job>] all jobs we want to enclose def initialize(jobs_array) @jobs_array = jobs_array end # @return [Jobs] running jobs def running select { |job| job.status == 'running' } end # @return [Jobs] pending jobs def pending select { |job| job.status == 'pending' } end # Creates a new Jobs object with selected jobs # @param block [Proc] select proc # @return [Jobs] selected jobs enclosed with the Jobs object def select(&block) self.class.new(super(&block)) end # Allows for iteration over jobs # @param block [Proc] block to call for each job def each(&block) @jobs_array.each(&block) end end end end end end
Version data entries
17 entries across 17 versions & 1 rubygems