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
|