Parent

Class/Module Index [+]

Quicksearch

MCollective::Vendor

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.

Public Class Methods

load_entry(entry) click to toggle source
# File lib/mcollective/vendor.rb, line 21
def load_entry(entry)
  Log.debug("Loading vendored #{$1}")
  load "#{vendor_dir}/#{entry}"
end
load_vendored() click to toggle source
# File lib/mcollective/vendor.rb, line 30
def load_vendored
  Dir.entries(vendor_dir).each do |entry|
    if entry.match(/load_(\w+?)\.rb$/)
      load_entry entry
    end
  end

  require_libs
end
require_libs() click to toggle source
# File lib/mcollective/vendor.rb, line 26
def require_libs
  require 'mcollective/vendor/require_vendored'
end
vendor_dir() click to toggle source
# File lib/mcollective/vendor.rb, line 17
def vendor_dir
  File.join([File.dirname(File.expand_path(__FILE__)), "vendor"])
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.