Class: Nous::UrlResolver

Inherits:
Command show all
Defined in:
lib/nous/url_resolver.rb

Defined Under Namespace

Classes: ResolutionError

Instance Method Summary collapse

Methods inherited from Command

call, #failure, #success

Constructor Details

#initialize(base_url:, href:) ⇒ UrlResolver

Returns a new instance of UrlResolver.



9
10
11
12
# File 'lib/nous/url_resolver.rb', line 9

def initialize(base_url:, href:)
  @base_uri = Addressable::URI.parse(base_url.to_s)
  @href = href.to_s.strip
end

Instance Method Details

#call ⇒ Object



14
15
16
17
18
19
# File 'lib/nous/url_resolver.rb', line 14

def call
  joined = base_uri.join(href)
  success(payload: Url.new(joined))
rescue Addressable::URI::InvalidURIError => e
  failure(ResolutionError.new("cannot resolve #{href.inspect}: #{e.message}"))
end