require 'net/telnet'

class Vacations

  def self.find_vacations(username)
    vacations = []
    tn = Net::Telnet.new('Host' => 'present.suse.de', 'Port' => 9874, 'Binmode' => false)
    tn.cmd("#{username}").split("\n").each do |line|
      if line =~ /\S{3} #{Time.now.year}-\d\d-\d\d/
        dates = []
        line.split(" ").each do |date|
          dates.push(date) if date =~ /#{Time.now.year}-\d\d-\d\d/
        end
        dates[1] = dates[0] unless dates[1]
        vacations.push(Date.parse(dates[0])..Date.parse(dates[1]))
      end
    end
    tn.close
    vacations
  end

  def self.members_on_vacation(members)
    members_on_vacation = members.collect do |member|
      username = member['suse_username']
      username if (username && Vacations.find_vacations(username).any? { |v| v === Date.today })
    end
    members_on_vacation.compact
  end

end