Class: ProsemirrorToHtml::GlobalIdToLinksFormatter

Inherits:
Object
  • Object
show all
Defined in:
app/formatters/prosemirror_to_html/global_id_to_links_formatter.rb

Constant Summary collapse

GLOBAL_ID_REGEX =
%r{(gid://[[:alnum:]]+/[\w:]+/[\w-]+)}

Instance Method Summary collapse

Constructor Details

#initialize(str) ⇒ GlobalIdToLinksFormatter

Returns a new instance of GlobalIdToLinksFormatter.



7
8
9
# File 'app/formatters/prosemirror_to_html/global_id_to_links_formatter.rb', line 7

def initialize(str)
  @str = str
end

Instance Method Details

#to_sObject



11
12
13
14
15
# File 'app/formatters/prosemirror_to_html/global_id_to_links_formatter.rb', line 11

def to_s
  gids = @str.scan(GLOBAL_ID_REGEX).flatten
  objects = GlobalID::Locator.locate_many(gids).index_by { |o| o.to_global_id.to_s }
  @str.gsub(GLOBAL_ID_REGEX) { |gid| url_for(objects[gid]) }
end