Sha256: aa2d4ea7a3cff4f7abb21b6118dc01a4c6c9e5ddbf38d6220239fb90e66ae6d2

Contents?: true

Size: 881 Bytes

Versions: 2

Compression:

Stored size: 881 Bytes

Contents

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_on_vacation = MEMBERS_CONFIG['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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
reviewlette-0.0.8 lib/reviewlette/vacations.rb
reviewlette-0.0.7 lib/reviewlette/vacations.rb