module Jekyll::JekyllRdf::Helper::PrefixSolver

Private Instance Methods

rdf_resolve_prefix(predicate) click to toggle source
# File lib/jekyll/helper/rdf_filter_helper.rb, line 85
def rdf_resolve_prefix(predicate)
  if(predicate[0] == "<" && predicate[-1] == ">")
    # iri
    return predicate
  end
  # qname
  arr = predicate.split(":", 2)
  if((arr[1].include? (":")) || (arr[1][0..1].eql?("//")))
    raise UnMarkedUri.new(predicate, Jekyll::JekyllRdf::Helper::RdfHelper::page.data['template']) #TODO .data['template'] is only defined on RdfPages
  end
  if(!Jekyll::JekyllRdf::Helper::RdfHelper::prefixes["rdf_prefixes"].nil?)
    if(!Jekyll::JekyllRdf::Helper::RdfHelper::prefixes["rdf_prefix_map"][arr[0]].nil?)
      return "<#{arr[1].prepend(Jekyll::JekyllRdf::Helper::RdfHelper::prefixes["rdf_prefix_map"][arr[0]])}>"
    else
      raise NoPrefixMapped.new(predicate, Jekyll::JekyllRdf::Helper::RdfHelper::page.data['template'], arr[0]) #TODO .data['template'] is only defined on RdfPages
    end
  else
    raise NoPrefixesDefined.new(predicate, Jekyll::JekyllRdf::Helper::RdfHelper::page.data['template']) #TODO .data['template'] is only defined on RdfPages
  end
end