require 'logger'
require 'work_dir/base'
require 'work_dir/repo'
require 'work_dir/website'
require 'work_dir/phantom'

# Top-level module for work dir
module WorkDir
  # These vars are allowed to leak through to commands run in the working dir
  ALLOWED_ENV = %w(
    PATH LANG USER LOGNAME LC_CTYPE SHELL LD_LIBRARY_PATH ARCHFLAGS TMPDIR
    SSH_AUTH_SOCK HOME)

  BLUEPRINT_CONFIG_FILENAME = 'autotune-config.json'
  BLUEPRINT_BUILD_COMMAND = './autotune-build'

  class CommandError < StandardError; end

  class << self
    def logger
      return @logger unless @logger.nil?
      @logger = Logger.new(STDOUT)
      @logger.level = Logger::INFO
      @logger.formatter = proc { |_lvl, _dt, _name, msg| "#{msg}\n" }
      @logger
    end
    attr_writer :logger

    def new(*args)
      Base.new(*args)
    end

    def repo(*args)
      Repo.new(*args)
    end

    def website(*args)
      Website.new(*args)
    end

    def phantom(*args)
      Phantom.new(*args)
    end
  end
end

require 'logger'
require 'work_dir/base'
require 'work_dir/repo'
require 'work_dir/website'

# Top-level module for work dir
module WorkDir
  # These vars are allowed to leak through to commands run in the working dir
  ALLOWED_ENV = %w(
    PATH LANG USER LOGNAME LC_CTYPE SHELL LD_LIBRARY_PATH ARCHFLAGS TMPDIR
    SSH_AUTH_SOCK HOME)

  BLUEPRINT_CONFIG_FILENAME = 'autotune-config.json'
  BLUEPRINT_BUILD_COMMAND = './autotune-build'

  class CommandError < StandardError; end

  class << self
    def logger
      return @logger unless @logger.nil?
      @logger = Logger.new(STDOUT)
      @logger.level = Logger::INFO
      @logger.formatter = proc { |_lvl, _dt, _name, msg| "#{msg}\n" }
      @logger
    end
    attr_writer :logger

    def new(*args)
      Base.new(*args)
    end

    def repo(*args)
      Repo.new(*args)
    end

    def website(*args)
      Website.new(*args)
    end
  end
end

--- 
+++ 
@@ -2,6 +2,7 @@
 require 'work_dir/base'
 require 'work_dir/repo'
 require 'work_dir/website'
+require 'work_dir/phantom'
 
 # Top-level module for work dir
 module WorkDir
@@ -36,5 +37,9 @@
     def website(*args)
       Website.new(*args)
     end
+
+    def phantom(*args)
+      Phantom.new(*args)
+    end
   end
 end
Add phantom to work dir
