Class: Charming::Markdown::URLResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/charming/presentation/markdown/url_resolver.rb

Overview

URLResolver resolves Markdown link destinations against an optional base URL.

Instance Method Summary collapse

Constructor Details

#initialize(base_url: nil) ⇒ URLResolver

Returns a new instance of URLResolver.



9
10
11
# File 'lib/charming/presentation/markdown/url_resolver.rb', line 9

def initialize(base_url: nil)
  @base_url = base_url
end

Instance Method Details

#resolve(value) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/charming/presentation/markdown/url_resolver.rb', line 13

def resolve(value)
  return value if base_url.to_s.empty? || value.empty?
  return value if URI.parse(value).absolute?

  URI.join(base_url, value).to_s
rescue URI::InvalidURIError
  value
end