Module: RTM::Sugar::TopicMap::Resolve

Defined in:
lib/rtm/sugar/topic_map/resolve.rb

Instance Method Summary collapse

Instance Method Details

#deresolve(iri) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/rtm/sugar/topic_map/resolve.rb', line 7

def deresolve(iri)
  if iri.is_a?(RTM::Locator)
    iri = iri.reference
  elsif iri.is_a?(String)
    iri = strip_identifier(iri)
  else
    raise("iri should be a String or Locator")
  end
  prefixes.each do |identifier, reference|
    if iri.index(reference) == 0 && iri.length > reference.length
      return iri.sub(reference, identifier + ":")
    elsif iri.index(base_iri) == 0
      _iri = iri.sub(base_iri, "")
      return _iri if locator.resolve(_iri) == create_locator(iri)
    end
  end
  return iri
end