Class: Uptrace::DSN
- Inherits:
-
Object
- Object
- Uptrace::DSN
- Defined in:
- lib/uptrace/dsn.rb
Overview
Uptrace DSN
Constant Summary collapse
- KEYS =
%w[scheme host project_id token].freeze
Instance Method Summary collapse
-
#initialize(dsn) ⇒ DSN
constructor
A new instance of DSN.
- #to_s ⇒ Object
Constructor Details
#initialize(dsn) ⇒ DSN
Returns a new instance of DSN.
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=#{dsn.inspect} does not have a #{k}) if v.nil? || v.empty? end end |
Instance Method Details
#to_s ⇒ Object
32 33 34 |
# File 'lib/uptrace/dsn.rb', line 32 def to_s @dsn end |