File: //proc/self/root/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/mcollective/vendor.rb
module MCollective
# Simple module to manage vendored code.
#
# To vendor a library simply download its whole git repo or untar
# into vendor/libraryname and create a load_libraryname.rb file
# to add its libdir into the $:.
#
# Once you have that file, add a require line in vendor/require_vendored.rb
# which will run after all the load_* files.
#
# The intention is to not change vendored libraries and to eventually
# make adding them in optional so that distros can simply adjust their
# packaging to exclude this directory and the various load_xxx.rb scripts
# if they wish to install these gems as native packages.
class Vendor
class << self
def vendor_dir
File.join([File.dirname(File.expand_path(__FILE__)), "vendor"])
end
def load_entry(entry)
Log.debug("Loading vendored #{$1}")
load "#{vendor_dir}/#{entry}"
end
def require_libs
require 'mcollective/vendor/require_vendored'
end
def load_vendored
Dir.entries(vendor_dir).each do |entry|
if entry.match(/load_(\w+?)\.rb$/)
load_entry entry
end
end
require_libs
end
end
end
end