Method: When::Parts::Resource._decode
- Defined in:
- lib/when_exe/parts/resource.rb
._decode(iri) ⇒ Object
498 499 500 501 502 503 504 505 506 507 508 509 510 511 |
# File 'lib/when_exe/parts/resource.rb', line 498 def _decode(iri) iri = iri.gsub(When::Parts::Resource::IRIDecode) {|c| When::Parts::Resource::IRIDecodeTable[c.upcase]} return iri unless iri =~ /%28/ begin unless iri.gsub!(/%28.*?%29/) {|token| token.gsub(/%([\dA-F]{2})/i) {$1.to_i(16).chr} } raise ArgumentError, 'Brackets do not correspond: ' + iri end end while iri =~ /%28/ iri = $1 if iri =~ /\A\((.*)\)\z/ iri end |