def need(host1, *more)
      sum = more << host1
      # Array doesn't have an 'exists' method, so behold - map reduce wankery!
      unless sum.map { |x| Hosties::HostDefinitions.include? x }.reduce(true) { |xs, x| x & xs }
        raise ArgumentError, "Unrecognized host type"
      end
      @hosts += sum
    end
def need(host1, *more)
      sum = more << host1
      # Array doesn't have an 'exists' method, so behold - map reduce wankery!
      unless sum.map { |x| Hosties::HostDefinitions.include? x }.reduce(true) { |xs, x| x & xs }
        raise ArgumentError, "Unrecognized host type"
      end
      @hosts += sum
    end
Define the hosts that an environment needs to be valid,
 for instance, maybe you need a :logger host and a
 :service host at a minimum.