Sha256: d31194403ccfb92b475808883572807d96150b52244d0e2793232b59316b0bb4

Contents?: true

Size: 731 Bytes

Versions: 6

Compression:

Stored size: 731 Bytes

Contents

module Microformats
  class AbsoluteUri
    attr_accessor :base, :relative

    def initialize(relative, base: nil)
      @base = base
      @relative = relative
      @base = base.strip unless base.nil?
      @relative = relative.strip unless relative.nil?
    end

    def absolutize
      return relative if base.nil?
      return base if relative.nil? or relative == ""
      return relative if relative =~ /^https?:\/\//
      return base + relative if relative =~ /^#/

      uri = URI.parse(relative)

      if base && !uri.absolute?
        uri = URI.join(base.to_s, relative.to_s)
      end

      uri.normalize!
      uri.to_s

    rescue URI::BadURIError, URI::InvalidURIError => e
      relative.to_s
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
microformats-4.0.7 lib/microformats/absolute_uri.rb
microformats-4.0.6 lib/microformats/absolute_uri.rb
microformats-4.0.5 lib/microformats/absolute_uri.rb
microformats-4.0.4 lib/microformats/absolute_uri.rb
microformats-4.0.3 lib/microformats/absolute_uri.rb
microformats-4.0.2 lib/microformats/absolute_uri.rb