Class | MCollective::Vendor |
In: |
lib/mcollective/vendor.rb
|
Parent: | Object |
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.
# File lib/mcollective/vendor.rb, line 21 21: def load_entry(entry) 22: Log.debug("Loading vendored #{$1}") 23: load "#{vendor_dir}/#{entry}" 24: end
# File lib/mcollective/vendor.rb, line 30 30: def load_vendored 31: Dir.entries(vendor_dir).each do |entry| 32: if entry.match(/load_(\w+?)\.rb$/) 33: load_entry entry 34: end 35: end 36: 37: require_libs 38: end
# File lib/mcollective/vendor.rb, line 26 26: def require_libs 27: require 'mcollective/vendor/require_vendored' 28: end