Class: Uptrace::DSN

Inherits:
Object
  • Object
show all
Defined in:
lib/uptrace/dsn.rb

Overview

Uptrace DSN

Constant Summary collapse

KEYS =
%w[scheme host project_id token].freeze

Instance Method Summary collapse

Constructor Details

#initialize(dsn) ⇒ DSN

Returns a new instance of DSN.

Raises:

  • (ArgumentError)


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/uptrace/dsn.rb', line 10

def initialize(dsn)
  raise ArgumentError, "DSN can't be empty" if dsn.empty?

  begin
    uri = URI.parse(dsn)
  rescue URI::InvalidURIError => e
    raise ArgumentError, %(can't parse DSN=#{dsn.inspect}: #{e})
  end

  @dsn = dsn
  @project_id = uri.path.delete_prefix('/')
  @token = uri.user
  @host = uri.host
  @port = uri.port
  @scheme = uri.scheme

  KEYS.each do |k|
    v = public_send(k)
    raise ArgumentError, %(DSN does not have #{k} (DSN=#{dsn.inspect})) if v.nil? || v.empty?
  end
end

Instance Method Details

#to_sObject



32
33
34
# File 'lib/uptrace/dsn.rb', line 32

def to_s
  @dsn
end