module Xcodeproj::Plist::FFI::DevToolsCore

def self.load_xcode_framework(framework)

def self.load_xcode_framework(framework)
  Fiddle.dlopen(XCODE_PATH.join(framework).to_s)
rescue Fiddle::DLError
  nil
end

def self.load_xcode_frameworks

Other tags:
    Note: - The IB frameworks only seem to be necessary on Xcode 7+
def self.load_xcode_frameworks
  DevToolsCore.silence_stderr do
    load_xcode_framework('SharedFrameworks/DVTFoundation.framework/DVTFoundation')
    load_xcode_framework('SharedFrameworks/DVTServices.framework/DVTServices')
    load_xcode_framework('SharedFrameworks/DVTPortal.framework/DVTPortal')
    load_xcode_framework('SharedFrameworks/DVTSourceControl.framework/DVTSourceControl')
    load_xcode_framework('SharedFrameworks/CSServiceClient.framework/CSServiceClient')
    load_xcode_framework('Frameworks/IBFoundation.framework/IBFoundation')
    load_xcode_framework('Frameworks/IBAutolayoutFoundation.framework/IBAutolayoutFoundation')
    load_xcode_framework('Frameworks/IDEFoundation.framework/IDEFoundation')
    load_xcode_framework('PlugIns/Xcode3Core.ideplugin/Contents/MacOS/Xcode3Core')
  end
end

def self.silence_stderr

def self.silence_stderr
  begin
    orig_stderr = $stderr.clone
    $stderr.reopen File.new('/dev/null', 'w')
    retval = yield
  ensure
    $stderr.reopen orig_stderr
  end
  retval
end