Class: Kentico::Kontent::Delivery::Resolvers::ContentLinkResolver
- Inherits:
-
Object
- Object
- Kentico::Kontent::Delivery::Resolvers::ContentLinkResolver
- Defined in:
- lib/delivery/resolvers/content_link_resolver.rb
Overview
Locates <a data-item-id=“”> tags in content and calls a user-defined method to supply the href for content item links. See github.com/Kentico/kontent-delivery-sdk-ruby#resolving-links
Instance Method Summary collapse
-
#initialize(found_handler = nil, not_found_handler = nil) ⇒ ContentLinkResolver
constructor
Constructor.
-
#resolve(content, links) ⇒ Object
Resolves all links in the content.
Constructor Details
#initialize(found_handler = nil, not_found_handler = nil) ⇒ ContentLinkResolver
Constructor.
-
Args:
-
found_handler (
lambda
) optional Method to be called when resolving a content link and the content item is present in the response -
not_found_handler (
lambda
) optional Method to be called when resolving a content link and the content item isn’t present in the response
-
16 17 18 19 |
# File 'lib/delivery/resolvers/content_link_resolver.rb', line 16 def initialize(found_handler = nil, not_found_handler = nil) @found_handler = found_handler @not_found = not_found_handler end |
Instance Method Details
#resolve(content, links) ⇒ Object
Resolves all links in the content.
-
Args:
-
content (
string
) The string value stored in the element -
links (
Array
) The collection of links from an element’s ‘links’ JSON node
-
-
Returns:
-
string
The original content passed, with all links resolved
-
29 30 31 32 33 34 35 36 |
# File 'lib/delivery/resolvers/content_link_resolver.rb', line 29 def resolve(content, links) doc = Nokogiri::HTML.parse(content).xpath('//body') links = links.map { |link| ContentLink.new link } = doc.xpath('//a[@data-item-id]') # This line performs the link resolving and replaces the tags in doc .map { |tag| resolve_tag tag, links } doc.to_xhtml end |