class Kentico::Kontent::Resolvers::ContentResolver

This class resolve the content of the content item to be injected under the front matter part of the page. If no user-defined resolver was provided or it returned nil then content will be resolved in a default way.

Public Class Methods

new(global_config) click to toggle source
# File lib/kontent-jekyll/resolvers/content_resolver.rb, line 11
def initialize(global_config)
  @global_config = global_config
end

Public Instance Methods

execute(content_item, config) click to toggle source
# File lib/kontent-jekyll/resolvers/content_resolver.rb, line 15
def execute(content_item, config)
  content = custom_resolver && custom_resolver.resolve(content_item)
  content || resolve_internal(content_item, config)
end

Private Instance Methods

custom_resolver() click to toggle source

User-provided provided resolver is instantiated based on the name from configuration.

# File lib/kontent-jekyll/resolvers/content_resolver.rb, line 25
def custom_resolver
  return @custom_resolver if @custom_resolver

  resolver_name = @global_config.content_resolver
  return unless resolver_name

  @custom_resolver = Module.const_get(resolver_name).new
end
resolve_internal(content_item, config) click to toggle source

Resolves content in a default way, it looks up element with a codename 'content' or codename specified in the config and takes its string value. This also resolves content components and linked items.

# File lib/kontent-jekyll/resolvers/content_resolver.rb, line 39
def resolve_internal(content_item, config)
  element_name = config.content || 'content'
  element = content_item.elements[element_name]
  element && content_item.get_string(element_name)
end