class Kentico::Kontent::Resolvers::DataResolver

This class resolve the data that will be injected into 'site.data' object. 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/data_resolver.rb, line 10
def initialize(global_config)
  @global_config = global_config
end

Public Instance Methods

execute(content_item) click to toggle source
# File lib/kontent-jekyll/resolvers/data_resolver.rb, line 14
def execute(content_item)
  data = custom_resolver && custom_resolver.resolve(content_item)
  data || resolve_internal(content_item)
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/data_resolver.rb, line 24
def custom_resolver
  return @custom_resolver if @custom_resolver

  resolver_name = @global_config.data_resolver
  return unless resolver_name

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

It resolves the content item and outputs only system and element fields as the original item also contains methods, etc.

# File lib/kontent-jekyll/resolvers/data_resolver.rb, line 37
def resolve_internal(item)
  OpenStruct.new(
    system: item.system,
    elements: item.elements,
  )
end