class Kentico::Kontent::Resolvers::FilenameResolver
This class resolve the filename 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/filename_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/filename_resolver.rb, line 14 def execute(content_item) filename = custom_resolver && custom_resolver.resolve(content_item) filename || 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/filename_resolver.rb, line 24 def custom_resolver return @custom_resolver if @custom_resolver resolver_name = @global_config.filename_resolver return unless resolver_name @custom_resolver = Module.const_get(resolver_name).new end
get_url_slug(item)
click to toggle source
# File lib/kontent-jekyll/resolvers/filename_resolver.rb, line 42 def get_url_slug(item) item.elements.each_pair { |_codename, element| return element if slug?(element) } end
resolve_internal(content_item)
click to toggle source
Internal resolver will try to locate the url slug element and return its value. If no slug was present then the item's codename will be used as the filename.
# File lib/kontent-jekyll/resolvers/filename_resolver.rb, line 37 def resolve_internal(content_item) url_slug = get_url_slug(content_item) url_slug&.value || content_item.system.codename end
slug?(element)
click to toggle source
# File lib/kontent-jekyll/resolvers/filename_resolver.rb, line 46 def slug?(element) element.type == Constants::ItemElementType::URL_SLUG end