Sha256: 6767d7b65ad8f8a2666ee301c299e90d7e343c128877cefa00466ae70b485961

Contents?: true

Size: 1.14 KB

Versions: 23

Compression:

Stored size: 1.14 KB

Contents

require 'log4r'

module Vagrant
  module Hosts
    autoload :Base,    'vagrant/hosts/base'
    autoload :Arch,    'vagrant/hosts/arch'
    autoload :BSD,     'vagrant/hosts/bsd'
    autoload :FreeBSD, 'vagrant/hosts/freebsd'
    autoload :Fedora,  'vagrant/hosts/fedora'
    autoload :OpenSUSE, 'vagrant/hosts/opensuse'
    autoload :Gentoo,  'vagrant/hosts/gentoo'
    autoload :Linux,   'vagrant/hosts/linux'
    autoload :Windows, 'vagrant/hosts/windows'

    # This method detects the correct host based on the `match?` methods
    # implemented in the registered hosts.
    def self.detect(registry)
      logger = Log4r::Logger.new("vagrant::hosts")

      # Sort the hosts by their precedence
      host_klasses = registry.to_hash.values
      host_klasses = host_klasses.sort_by { |a| a.precedence }.reverse
      logger.debug("Host path search classes: #{host_klasses.inspect}")

      # Test for matches and return the host class that matches
      host_klasses.each do |klass|
        if klass.match?
          logger.info("Host class: #{klass}")
          return klass
        end
      end

      # No matches found...
      return nil
    end
  end
end

Version data entries

23 entries across 23 versions & 6 rubygems

Version Path
bmhatfield-vagrant-1.0.10 lib/vagrant/hosts.rb
bmhatfield-vagrant-1.0.9 lib/vagrant/hosts.rb
bmhatfield-vagrant-1.0.8 lib/vagrant/hosts.rb
bmhatfield-vagrant-1.0.7 lib/vagrant/hosts.rb
vagrantup-1.0.7 lib/vagrant/hosts.rb
vagrantup-1.0.6 lib/vagrant/hosts.rb
vagrantup-1.0.5 lib/vagrant/hosts.rb
vagrantup-1.0.4 lib/vagrant/hosts.rb
vagrantup-1.0.3 lib/vagrant/hosts.rb
vagrantup-1.0.2 lib/vagrant/hosts.rb
vagrantup-1.0.1 lib/vagrant/hosts.rb
vagrantup-1.0.0 lib/vagrant/hosts.rb
vagrant-fixed-ssh-1.0.7 lib/vagrant/hosts.rb
vagrant-1.0.7 lib/vagrant/hosts.rb
vagrant-1.0.6 lib/vagrant/hosts.rb
boxcar-0.10005.1 lib/vagrant/hosts.rb
fragrant-0.0.5 vendor/bundle/ruby/1.9.1/gems/vagrant-1.0.5/lib/vagrant/hosts.rb
vagrant-1.0.5 lib/vagrant/hosts.rb
vagrant-1.0.4 lib/vagrant/hosts.rb
vagrant-1.0.3 lib/vagrant/hosts.rb