lib/net/dns/rr/hinfo.rb in net-dns-0.8.0 vs lib/net/dns/rr/hinfo.rb in net-dns-0.9.0
- old
+ new
@@ -1,9 +1,8 @@
module Net # :nodoc:
module DNS
class RR
-
#
# = System Information Record (HINFO)
#
# Class for DNS HINFO resource records.
#
@@ -11,98 +10,87 @@
# For security reasons these records are rarely used on public servers.
# If a space exists in the field it must be enclosed in quotes.
# Single space between CPU and OS parameters.
#
class HINFO < RR
-
# Gets the CPU value.
#
# Returns a String.
- def cpu
- @cpu
- end
+ attr_reader :cpu
# Gets the OS value.
#
# Returns a String.
- def os
- @os
- end
+ attr_reader :os
# Gets the standardized value for this record,
# represented by the value of <tt>cpu</tt> and <tt>os</tt>.
#
# Returns a String.
def value
- %Q{"#{cpu}" "#{os}"}
+ %Q("#{cpu}" "#{os}")
end
-
# Gets a list of all the attributes for this record.
#
# Returns an Array of values.
def to_a
[nil, nil, cls.to_s, type.to_s, value]
end
-
private
- def subclass_new_from_hash(options)
- if options.has_key?(:cpu) && options.has_key?(:os)
- @cpu = options[:cpu]
- @os = options[:os]
- else
- raise ArgumentError, ":cpu and :os fields are mandatory"
- end
+ def subclass_new_from_hash(options)
+ if options.key?(:cpu) && options.key?(:os)
+ @cpu = options[:cpu]
+ @os = options[:os]
+ else
+ raise ArgumentError, ":cpu and :os fields are mandatory"
end
+ end
- def subclass_new_from_string(str)
- @cpu, @os = check_hinfo(str)
- end
+ def subclass_new_from_string(str)
+ @cpu, @os = check_hinfo(str)
+ end
- def subclass_new_from_binary(data, offset)
- len = data.unpack("@#{offset} C").first
- offset += 1
- @cpu = data[offset..(offset + len)]
- offset += len
-
- len = data.unpack("@#{offset} C").first
- offset += 1
- @os = data[offset..(offset + len)]
- offset += len
- end
+ def subclass_new_from_binary(data, offset)
+ len = data.unpack("@#{offset} C").first
+ offset += 1
+ @cpu = data[offset..(offset + len)]
+ offset += len
+ len = data.unpack("@#{offset} C").first
+ offset += 1
+ @os = data[offset..(offset + len)]
+ offset += len
+ end
- def set_type
- @type = Net::DNS::RR::Types.new("HINFO")
- end
+ def set_type
+ @type = Net::DNS::RR::Types.new("HINFO")
+ end
- def get_inspect
- value
- end
+ def get_inspect
+ value
+ end
-
- def check_hinfo(input)
- if input.to_s.strip =~ /^(?:["']?(.*?)["']?)\s+(?:["']?(.*?)["']?)$/
- [$1, $2]
- else
- raise ArgumentError, "Invalid HINFO Section `#{input}'"
- end
+ def check_hinfo(input)
+ if input.to_s.strip =~ /^(?:["']?(.*?)["']?)\s+(?:["']?(.*?)["']?)$/
+ [Regexp.last_match(1), Regexp.last_match(2)]
+ else
+ raise ArgumentError, "Invalid HINFO Section `#{input}'"
end
+ end
- def build_pack
- @hinfo_pack = ""
- @hinfo_pack += [cpu.size].pack("C") + cpu
- @hinfo_pack += [os.size ].pack("C") + os
- @rdlength = @hinfo_pack.size
- end
+ def build_pack
+ @hinfo_pack = ""
+ @hinfo_pack += [cpu.size].pack("C") + cpu
+ @hinfo_pack += [os.size].pack("C") + os
+ @rdlength = @hinfo_pack.size
+ end
- def get_data
- @hinfo_pack
- end
-
+ def get_data
+ @hinfo_pack
+ end
end
-
end
end
end