Sha256: 95e85c4266299722f9bda017506740966d5c7969f6fd5855a69573c9119b57d3

Contents?: true

Size: 1.37 KB

Versions: 25

Compression:

Stored size: 1.37 KB

Contents

require 'date'

class Lease
  attr_accessor :name,:mac,:start,:end,:ip

  def initialize(name)
    @name=name
    @ip=name
  end

  def expired?
    @end < DateTime.now
  end
end

class LeasesFile

  attr_reader :leases

  def initialize(filename)
    @filename=filename
    @leases=Array.new
    load
  end

  def load
    @leases=Array.new
    File.open(@filename,"r") do |leasefile|
      lease=nil
      while (line = leasefile.gets)

        line=line.lstrip.gsub(';','')
        case line
        when /^lease/
          @leases << lease unless lease.nil?
          name=line.split(' ')[1]
          lease=Lease.new(name)
        when /^hardware/
          lease.mac=line.split(" ")[2]
        when /^starts/
          lease.start=DateTime.parse(line.split(" ")[2..3].join(" "))
        when /^ends/
          lease.end=DateTime.parse(line.split(" ")[2..3].join(" "))
        end

      end
      @leases << lease unless lease.nil?
    end
    return @leases
  end

  def all_leases
    return @leases
  end

  def current_leases
    hash_list=Hash.new
    @leases.each do |lease|
      hash_list[lease.name]=lease
    end
    collapsed_list=Array.new
    hash_list.each do |key,value|
      collapsed_list << value
    end
    return collapsed_list
  end

  def find_lease_by_mac(mac)
    matches=current_leases.select{|l| l.mac==mac}
    return nil if matches.nil?
    return matches[0]
  end

end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
veewee-0.5.0.alpha4 lib/fission.old/leasesfile.rb
veewee-0.5.0.alpha3 lib/fission.old/leasesfile.rb
veewee-0.5.0.alpha2 lib/fission.old/leasesfile.rb
veewee-0.5.0.alpha1 lib/fission.old/leasesfile.rb
veewee-0.4.5.1 lib/fission.old/leasesfile.rb
veewee-0.4.5 lib/fission.old/leasesfile.rb
veewee-0.4.5.pre1 lib/fission.old/leasesfile.rb
veewee-0.4.4 lib/fission.old/leasesfile.rb
veewee-0.4.3 lib/fission.old/leasesfile.rb
veewee-0.4.2 lib/fission.old/leasesfile.rb
veewee-0.4.1 lib/fission.old/leasesfile.rb
veewee-0.4.0 lib/fission.old/leasesfile.rb
veewee-0.3.12 lib/fission.old/leasesfile.rb
veewee-0.3.11 lib/fission.old/leasesfile.rb
veewee-0.3.10 lib/fission.old/leasesfile.rb
veewee-0.3.9 lib/fission.old/leasesfile.rb
veewee-0.3.0.alpha9 lib/fission/leasesfile.rb
veewee-0.3.0.alpha8 lib/fission/leasesfile.rb
veewee-0.3.0.alpha7 lib/fission/leasesfile.rb
veewee-0.3.0.alpha6 lib/fission/leasesfile.rb