Class: Coradoc::AsciiDoc::Serializer::Serializers::Inline::Link

Inherits:
Base
  • Object
show all
Defined in:
lib/coradoc/asciidoc/serializer/serializers/inline/link.rb

Instance Method Summary collapse

Methods inherited from Base

#serialize

Instance Method Details

#to_adoc(model, _options = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/coradoc/asciidoc/serializer/serializers/inline/link.rb', line 11

def to_adoc(model, _options = {})
  link = model.path.dup
  link = "link:#{link}" unless model.path&.match?(URI::DEFAULT_PARSER.make_regexp)

  name_empty = model.name.nil? || model.name.empty?
  title_empty = model.title.nil? || model.title.empty?
  valid_empty_name_link = link.start_with?(%r{https?://})

  link << if name_empty && !title_empty
            "[#{model.title}]"
          elsif !name_empty
            "[#{model.name}]"
          elsif valid_empty_name_link && !model.right_constrain
            ''
          else
            '[]'
          end
  link
end