Class: Resolv::DNS::Name

Inherits:
Object
  • Object
show all
Defined in:
lib/async/dns/extensions/resolv.rb

Overview

Extensions to the ‘Resolv::DNS::Name` class.

Instance Method Summary collapse

Instance Method Details

#with_origin(origin, absolute = true) ⇒ Object

Computes the name, typically absolute, with the specified origin as a suffix. If the origin is nil, don’t change the name, but change it to absolute (as specified).



48
49
50
51
52
53
54
# File 'lib/async/dns/extensions/resolv.rb', line 48

def with_origin(origin, absolute = true)
  return self.class.new(@labels, absolute) if origin == nil
  
  origin = Label.split(origin) if String === origin
  
  return self.class.new(@labels + origin, absolute)
end

#without_origin(origin, absolute = false) ⇒ Object

Compute the name, typically relative, without the specified origin suffix. If the origin is nil, don’t change the name, but change it to absolute (as specified).



62
63
64
65
66
67
68
69
70
71
72
# File 'lib/async/dns/extensions/resolv.rb', line 62

def without_origin(origin, absolute = false)
  return self.class.new(@labels, absolute) if origin == nil
  
  origin = Label.split(origin) if String === origin
  
  if @labels.last(origin.length) == origin
    return self.class.new(@labels.first(@labels.length - origin.length), absolute)
  else
    raise OriginError.new("#{self} does not end with #{origin.join('.')}")
  end
end