Sha256: 88058d5367cf92eb1c681e0456fb5f26234c83581a90bff4874412a19929ad8f

Contents?: true

Size: 754 Bytes

Versions: 2

Compression:

Stored size: 754 Bytes

Contents

require 'pork/suite'
require 'pork/isolator'

module Pork
  class Executor < Struct.new(:isolator)
    def self.[] index
      Isolator[][index]
    end

    def self.execute mode: Pork.execute_mode,
                     stat: Pork.stat,
                     suite: Suite,
                     isolator: Isolator[suite],
                     paths: isolator.all_paths
      require "pork/mode/#{mode}"
      Pork.const_get(mode.capitalize).new(isolator).execute(stat, paths)
    end

    def initialize new_isolator
      super(new_isolator)
      extensions = Pork.execute_extensions
      extend(*extensions.reverse) if extensions.any?
    end

    def execute stat=Stat.new, paths=isolator.all_paths
      raise NotImplementedError
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pork-2.1.0 lib/pork/executor.rb
pork-2.0.0 lib/pork/executor.rb