Sha256: 7c05b807035553c55847e3c69f3bc1afcd9f7db88f181002d9e1917afc1b1899

Contents?: true

Size: 718 Bytes

Versions: 2

Compression:

Stored size: 718 Bytes

Contents

# frozen_string_literal: true

require 'uri'
require 'rinku'
require 'rexml/document'

module AutoHtml
  # Link filter
  class Link
    def initialize(target: nil, rel: nil, short_domains: false)
      @target = target
      @rel = rel
      @short_domains = short_domains
    end

    def call(text)
      Rinku.auto_link(text, :all, attributes, nil, flags)
    end

    private

    def attributes
      [target_attr, rel_attr].compact.join(' ') unless [target_attr, rel_attr].compact.empty?
    end

    def rel_attr
      %(rel="#{@rel}") if @rel
    end

    def target_attr
      %(target="#{@target}") if @target
    end

    def flags
      @short_domains ? Rinku::AUTOLINK_SHORT_DOMAINS : 0
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
auto_html-2.2.0 lib/auto_html/link.rb
auto_html-2.1.1 lib/auto_html/link.rb