Sha256: f08ad026d7fb733f886b7c1d3b88946cf3084385551d0b9d42fc314d6fef58da

Contents?: true

Size: 1.36 KB

Versions: 5

Compression:

Stored size: 1.36 KB

Contents

module OpenVZ
    # 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 'openvz/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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
openvz-1.5.3 lib/openvz/vendor.rb
openvz-1.5 lib/openvz/vendor.rb
openvz-1.4 lib/openvz/vendor.rb
openvz-1.2 lib/openvz/vendor.rb
openvz-1.1 lib/openvz/vendor.rb