Sha256: e4f6c746b72fbe0a01d2f79f44ce14ca12ca6a482ea72600b4a49be28040d3b8
Contents?: true
Size: 1.03 KB
Versions: 5
Compression:
Stored size: 1.03 KB
Contents
require "net/validations" module Net class Record include Net::Validations attr_accessor :hostname, :proxy, :logger def initialize opts = {} # set all attributes opts.each do |k,v| eval("self.#{k}= v") if self.respond_to?("#{k}=") end if opts raise Net::LeaseConflict.new("#{self.mac}/#{self.ip}") if opts['state'] self.logger ||= Rails.logger raise "Must define a hostname" if hostname.blank? raise "Must define a proxy" if proxy.nil? end def inspect to_s end # Do we have conflicting entries? def conflicting? !conflicts.empty? end # clears internal cache def reload! @conflicts = nil end # Compares two records by their attributes def == other return false unless other.respond_to? :attrs self.attrs == other.attrs end end class Error < RuntimeError; end class Conflict < Exception attr_accessor :type, :expected, :actual, :message end class LeaseConflict < RuntimeError; end end
Version data entries
5 entries across 5 versions & 1 rubygems