module Jekyll::JekyllRdf::Helper::RdfHookHelper

Public Instance Methods

backload_prefixes(page, payload) click to toggle source
# File lib/jekyll/helper/rdf_hook_helper.rb, line 29
def backload_prefixes page, payload
  prefix_path = page.data["rdf_prefix_path"]
  begin
    if(!prefix_path.nil? && !page.data["rdf_prefix_set?"] && !page.data["layout"].nil?)
      # rdf_prefix_path is set but not defined through the page
      base_path = search_prefix_definition page.site.layouts[page.data["layout"]], prefix_path
    elsif (prefix_path.nil? && !page.data["layout"].nil?)
      # page might be a post (does not contain values from layout frontmatter)
      # |->rdf_prefix_path can still be set in a layout
      locations = check_prefix_definition page.site.layouts[page.data["layout"]]
      base_path = locations[0]
      prefix_path = locations[1]
    elsif(!prefix_path.nil? && page.data["rdf_prefix_set?"])
      # rdf_prefix_path is set directly in the fronmatter of the page
      base_path = page.instance_variable_get(:@base_dir)
      base_path ||= payload.site["source"]
    end
  rescue MissingTemplate
    # the case that a template is missing
    # aka. undefined method `data' for nil:NilClass
    return
  end
  if(page.data["rdf_prefixes"].nil? && !(prefix_path.nil? || base_path.nil?))
    Jekyll::JekyllRdf::Helper::RdfHelper.load_prefixes(
      File.join(
        base_path,
        prefix_path
      ),
      page.data
    )
  end
end
check_prefix_definition(layout) click to toggle source
# File lib/jekyll/helper/rdf_hook_helper.rb, line 73
def check_prefix_definition layout
  if layout.nil?
    raise MissingTemplate.new "Missing template"
  end
  unless(layout.data["rdf_prefix_path"].nil?)
    return [layout.instance_variable_get(:@base_dir), layout.data["rdf_prefix_path"]]
  end
  return check_prefix_definition layout.site.layouts[layout.data["layout"]] unless layout.data["layout"].nil?
  return [nil, nil]
end
search_prefix_definition(layout, rdf_prefix_path) click to toggle source
# File lib/jekyll/helper/rdf_hook_helper.rb, line 62
def search_prefix_definition layout, rdf_prefix_path
  if(rdf_prefix_path.eql? layout.data["rdf_prefix_path"])
    return layout.instance_variable_get(:@base_dir)
  end
  return search_prefix_definition layout.site.layouts[layout.data["layout"]], rdf_prefix_path unless layout.data["layout"].nil?
  return nil
end