Sha256: caac1b2c6fdfd98352be581223690f7c6b75ecd0c0ae910c1fb6ac8085c53238
Contents?: true
Size: 1 KB
Versions: 2
Compression:
Stored size: 1 KB
Contents
# frozen_string_literal: true module Dynflow class ExecutionHistory include Algebrick::TypeCheck include Enumerable Event = Algebrick.type do fields! time: Integer, name: String, world_id: type { variants String, NilClass } end module Event def inspect ["#{Time.at(time).utc}: #{name}", world_id].compact.join(' @ ') end end attr_reader :events def initialize(events = []) @events = (events || []).each { |e| Type! e, Event } end def each(&block) @events.each(&block) end def add(name, world_id = nil) @events << Event[Time.now.to_i, name, world_id] end def to_hash @events.map(&:to_hash) end def inspect "ExecutionHistory: #{@events.inspect}" end def self.new_from_hash(value) value ||= [] # for compatibility with tasks before the # introduction of execution history self.new(value.map { |hash| Event[hash] }) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dynflow-1.9.0 | lib/dynflow/execution_history.rb |
dynflow-1.8.3 | lib/dynflow/execution_history.rb |