Class: Resolv::DNS::SvcParams
- Inherits:
-
Object
- Object
- Resolv::DNS::SvcParams
- Includes:
- Enumerable
- Defined in:
- lib/resolv.rb
Overview
SvcParams for service binding RRs. [RFC9460]
Class Method Summary collapse
-
.decode(msg) ⇒ Object
:nodoc:.
Instance Method Summary collapse
-
#[](key) ⇒ Object
Get SvcParam for the given
keyin this list. -
#add(param) ⇒ Object
Add the SvcParam
paramto this list, overwriting the existing one with the same key. -
#count ⇒ Object
Get the number of SvcParams in this list.
-
#delete(key) ⇒ Object
Remove the
SvcParamwith the givenkeyand return it. -
#each(&block) ⇒ Object
Enumerate the +SvcParam+s in this list.
-
#empty? ⇒ Boolean
Get whether this list is empty.
-
#encode(msg) ⇒ Object
:nodoc:.
-
#initialize(params = []) ⇒ SvcParams
constructor
Create a list of SvcParams with the given initial content.
Constructor Details
#initialize(params = []) ⇒ SvcParams
Create a list of SvcParams with the given initial content.
params has to be an enumerable of +SvcParam+s.
If its content has +SvcParam+s with the duplicate key,
the one appears last takes precedence.
1732 1733 1734 1735 1736 1737 1738 |
# File 'lib/resolv.rb', line 1732 def initialize(params = []) @params = {} params.each do |param| add param end end |
Class Method Details
Instance Method Details
#[](key) ⇒ Object
Get SvcParam for the given key in this list.
1743 1744 1745 |
# File 'lib/resolv.rb', line 1743 def [](key) @params[canonical_key(key)] end |
#add(param) ⇒ Object
Add the SvcParam param to this list, overwriting the existing one with the same key.
1764 1765 1766 |
# File 'lib/resolv.rb', line 1764 def add(param) @params[param.class.key_number] = param end |
#count ⇒ Object
Get the number of SvcParams in this list.
1750 1751 1752 |
# File 'lib/resolv.rb', line 1750 def count @params.count end |
#delete(key) ⇒ Object
Remove the SvcParam with the given key and return it.
1771 1772 1773 |
# File 'lib/resolv.rb', line 1771 def delete(key) @params.delete(canonical_key(key)) end |
#each(&block) ⇒ Object
Enumerate the +SvcParam+s in this list.
1778 1779 1780 1781 |
# File 'lib/resolv.rb', line 1778 def each(&block) return enum_for(:each) unless block @params.each_value(&block) end |
#empty? ⇒ Boolean
Get whether this list is empty.
1757 1758 1759 |
# File 'lib/resolv.rb', line 1757 def empty? @params.empty? end |
#encode(msg) ⇒ Object
:nodoc:
1783 1784 1785 1786 1787 1788 1789 1790 |
# File 'lib/resolv.rb', line 1783 def encode(msg) # :nodoc: @params.keys.sort.each do |key| msg.put_pack('n', key) msg.put_length16 do @params.fetch(key).encode(msg) end end end |