Method: When::Parts::Resource._encode

Defined in:
lib/when_exe/parts/resource.rb

._encode(iri) ⇒ Object



483
484
485
486
487
488
489
490
491
492
493
494
495
# File 'lib/when_exe/parts/resource.rb', line 483

def _encode(iri)
  return iri unless iri =~ /\(/

  iri = iri.dup
  begin
    unless iri.gsub!(/\([^()]*\)/) {|token|
      token.gsub(/[():?&%]/) {|char|'%' + char.ord.to_s(16)}
    }
      raise ArgumentError, 'Brackets do not correspond: ' + iri 
    end
  end while iri =~ /\(/
  iri
end