Sha256: 835513f188688d758add7d6636e49e6271461fd6adce000e7c1dd47849ab9795
Contents?: true
Size: 899 Bytes
Versions: 5
Compression:
Stored size: 899 Bytes
Contents
require 'task' module Orchestration # Represents tasks queue for orchestration class Queue attr_reader :items STATUS = %w[ pending running failed completed rollbacked conflict canceled] def initialize @items = [] end def create options options[:status] ||= default_status items << Task.new(options) end def delete item @items.delete item end def find_by_name name items.each {|task| return task if task.name == name} end def all items.sort end def count items.count end def empty? items.empty? end def clear @items = [] && true end def to_json all.to_json end STATUS.each do |s| define_method s do all.delete_if {|t| t.status != s}.sort end end private def default_status "pending" end end end
Version data entries
5 entries across 5 versions & 1 rubygems