8. ruby - リンクチェック - assemble.rb 相対アドレスを変換

 
8.1 相対アドレスを変換

8.1 相対アドレスを変換

=begin

./  や ../ で始まる URI を組み立て直す

=end

require('pry')

class Assemble
  def initialize()
  end

  def execute(index, original)
    uri = original;

    begin
      if (original == '../')                              # ../ のみであれば
        split = index.split('/')                          # ひとつ上のインデックスとする
        uri = index[0, index.length-(split.last.length+1)]

      elsif (original[0, 2] == '..')                      # ../ インデックスのひとつ上に / 以降を加える
        split = index.split('/')
        uri = index[0, index.length-(split.last.length+2)] + original[2,original.length-2]

      elsif (original == '.')                             # . 一文字のみ
        uri = index + '*'                                 # あえて変なことにしちゃう(落ちないように)
      else                                                # ./  インデックスに / 以降を加える
        uri = index + original[2,original.length-2]
      end
    rescue => error
      puts('index'+"[#{index}]")
      puts('original'+"[#{original}]")

      binding.pry
      puts "例外発生[#{error.class}]"
      puts "#{error.backtrace}"
      puts "[#{self.class.name}][#{error.message}]"
      exit 1
    end

    return uri
  end
end