Class: Workato::Connector::Sdk::Dsl::NetPackage

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/workato/connector/sdk/dsl/net_package.rb

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(symbol, *_args) ⇒ void (private)

This method returns an undefined value.

Parameters:

  • symbol (String, Symbol)
  • _args (T.untyped)

Raises:



46
47
48
# File 'lib/workato/connector/sdk/dsl/net_package.rb', line 46

def method_missing(symbol, *_args)
  raise UndefinedStdLibMethodError.new(symbol.to_s, 'workato.net')
end

Instance Method Details

#lookup(name, record) ⇒ Array<Hash{Symbol => T.untyped}>

Parameters:

  • name (String)
  • record (String)

Returns:

  • (Array<Hash{Symbol => T.untyped}>)


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/workato/connector/sdk/dsl/net_package.rb', line 16

def lookup(name, record)
  case record.upcase
  when 'A'
    records = dns_resolver.getresources(name, Resolv::DNS::Resource::IN::A)
    records.map { |d| { address: d.address.to_s } }
  when 'SRV'
    records = dns_resolver.getresources(name, Resolv::DNS::Resource::IN::SRV)
    records.map do |d|
      {
        port: d.port,
        priority: d.priority,
        target: d.target.to_s,
        weight: d.weight
      }
    end
  else
    raise Sdk::ArgumentError, 'Record type not supported, Supported types: "A", "SRV"'
  end
rescue Resolv::ResolvError, Resolv::ResolvTimeout => e
  raise NetLookupError, e
end