Module: URI

Defined in:
lib/defang.rb

Instance Method Summary collapse

Instance Method Details

#defangObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/defang.rb', line 6

def defang
  # save originals
  original_scheme = @scheme
  original_host = @host

  # replace so to_s uses them
  @scheme = @scheme.gsub('t', 'X') if @scheme
  @host = @host.reverse.sub('.', '[.]'.reverse).reverse if @host

  defanged_uri = to_s

  # final check to ensure safety
  if defanged_uri.include?('.') && !defanged_uri.include?('[.]')
    defanged_uri.reverse!.sub!('.', '[.]'.reverse).reverse!
  end

  # reset originals
  @scheme = original_scheme
  @host = original_host

  defanged_uri
end