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