Sha256: bb60d9cc8fd0442f2983504d0bcaba04c38e4492b5287863f10ec36c6617371a

Contents?: true

Size: 820 Bytes

Versions: 2

Compression:

Stored size: 820 Bytes

Contents

class Lev::NullStatus
  attr_reader :id

  def initialize(id=nil)
    @id = id || "null-status:#{SecureRandom.uuid}"
    @kill_requested = false
  end

  def request_kill!
    @kill_requested = true
  end

  def kill_requested?
    @kill_requested
  end

  def method_missing(*args, **kwargs, &block)
    nil
  end

  # Provide null object pattern methods for status setter methods called from
  # within routines; routines should not be using other query methods to check
  # their own status (they should know it), with the exception of `kill_requested?`

  def set_job_name(*); end
  def set_job_args(*); end
  def set_provider_job_id(*); end
  def set_progress(*); end
  def save(*); end
  def add_error(*); end

  def queued!; end
  def started!; end
  def succeeded!; end
  def failed!; end
  def killed!; end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
lev-13.0.0 lib/lev/null_status.rb
lev-12.1.0 lib/lev/null_status.rb