This is an auxiliary class to handle Net::DNS::RR class field in a DNS packet.
Be able to control the default class to assign when cls argument is nil. Default to IN
# File lib/net/dns/rr/classes.rb, line 71 def self.default=(str) if CLASSES[str] @@default = CLASSES[str] else raise ArgumentError, "Unknown class `#{str}'" end end
Creates a new object representing an RR class. Performs some checks on the argument validity too. Il cls is nil, the default value is ANY or the one set with Classes.default=
# File lib/net/dns/rr/classes.rb, line 31 def initialize(cls) case cls when String initialize_from_str(cls) when Fixnum initialize_from_num(cls) when nil initialize_from_num(@@default) end if @str.nil? || @num.nil? raise ArgumentError, "Unable to create a `Classes' from `#{cls}'" end end
Gives in output the keys from the Classes hash in a format suited for regexps
# File lib/net/dns/rr/classes.rb, line 110 def self.regexp CLASSES.keys.sort.join("|") end
Returns whether cls is a valid RR class.
Net::DNS::RR::Classes.valid?("IN") # => true Net::DNS::RR::Classes.valid?(1) # => true Net::DNS::RR::Classes.valid?("Q") # => false Net::DNS::RR::Classes.valid?(256) # => false Net::DNS::RR::Classes.valid?(Hash.new) # => ArgumentError
FIXME: valid? should never raise.
ArgumentError |
if cls isn't either a String or a Fixnum |
# File lib/net/dns/rr/classes.rb, line 97 def self.valid?(cls) case cls when String CLASSES.has_key?(cls) when Fixnum CLASSES.invert.has_key?(cls) else raise ArgumentError, "Wrong cls class: #{cls.class}" end end
Returns the class in number format (default for normal use)
FIXME: inspect must return a String.
# File lib/net/dns/rr/classes.rb, line 51 def inspect @num end
Generated with the Darkfish Rdoc Generator 2.