lib/pork/executor.rb in pork-1.5.0 vs lib/pork/executor.rb in pork-2.0.0
- old
+ new
@@ -1,16 +1,30 @@
-require 'pork/imp'
-require 'pork/isolate'
-require 'pork/context'
+require 'pork/suite'
+require 'pork/isolator'
module Pork
- class Executor < Struct.new(:pork_stat, :pork_description)
- # we don't want this method from Struct.new, it's confusing when
- # pork/isolate was not loaded. (i.e. isolate would override it anyway)
- singleton_class.superclass.send(:remove_method, :[])
+ class Executor < Struct.new(:isolator)
+ def self.[] index
+ Isolator[][index]
+ end
- extend Isolate, Imp
- include Context
- init
+ 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