Sha256: 47e19b9a9b39c1ce9cef677a0da807a949fa80c387b10265fac66c3f6120def8

Contents?: true

Size: 1.94 KB

Versions: 6

Compression:

Stored size: 1.94 KB

Contents

# encoding: UTF-8
# frozen_string_literal: true

# Requirements
# =======================================================================

# Stdlib
# -----------------------------------------------------------------------

# Deps
# -----------------------------------------------------------------------

# Need mutable props mixin
require 'nrser/props/immutable/instance_variables'

# Need {Time#iso8601_for_idiots}
require 'nrser/core_ext/time'

# Project / Package
# -----------------------------------------------------------------------


# Refinements
# =======================================================================


# Declarations
# =======================================================================


# Definitions
# =======================================================================


# An object that encapsulates an execution of the QB program.
# 
class QB::Execution
  
  # Constants
  # ========================================================================
  
  
  # Mixins
  # ========================================================================
  
  include NRSER::Props::Mutable::InstanceVariables
  
  
  # Class Methods
  # ========================================================================
  
  
  # Props
  # ========================================================================
  
  # @!attribute [r]
  prop  :started_at,
        type: Time,
        writer: false,
        default: -> { Time.current }
  
  prop  :pid,
        type: Fixnum,
        source: -> { Process.pid }
  
  prop  :id,
        type: String,
        source: -> { "#{ self.started_at }-pid_#{ self.pid }" }
  
  # Construction
  # ========================================================================
  
  # Instantiate a new `QB::Execution`.
  def initialize values = {}
    initialize_props values
  end # #initialize
  
  
  # Instance Methods
  # ========================================================================
  
  
end # class QB::Execution

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
qb-0.4.5 lib/qb/execution.rb
qb-0.4.4 lib/qb/execution.rb
qb-0.4.3 lib/qb/execution.rb
qb-0.4.2 lib/qb/execution.rb
qb-0.4.1 lib/qb/execution.rb
qb-0.4.0 lib/qb/execution.rb