Ruby - リンクチェック - linkcheck.rb メイン

 クラウディア
1. メイン
2. 起動

1. メイン

 メインのソースです。
#!/usr/bin/env ruby
=begin

v0.1  リンク切れチェックを行う、右の形式で起動  ./linkcheck.rb URI
v0.2  チェック済の結果を保持する処理に誤りがあったので修正
v0.3  ファイル出力の試行錯誤中
v0.4  やたら post にするとエラーになるので post のないものは get で取得
      実行時のパスを追加する

=end

$LOAD_PATH << File.dirname(File.expand_path(__FILE__))

require('pry')
require('openssl')
require('readconf')
require('checkparent')
require('output')

begin
  OpenSSL::SSL.module_eval{ remove_const(:VERIFY_PEER) }
  OpenSSL::SSL.const_set( :VERIFY_PEER, OpenSSL::SSL::VERIFY_NONE )

  starttime = Time::now()
  uri = URI.parse(ARGV[0])

  $version = 0.6

  $OK      = 0;                                   # チェック結果  正常
  $ERROR   = 1;                                   #               異常  リンク切れ
  $WARNING = 2;                                   #               警告  機械的にチェックできない

  tree     = { ARGV[0] => 'UNKNOWN' }
  checked  = {}
  $selfref = []                                   # 自己参照あり
  $result  = {}
  $checkID = []
  $nocheck = []                                   # チェックしない参照先
  $nocheckParent = []                             # チェックしない参照元
  $output  = {}
  $host    = uri.host

  readconf = ReadConf.new
  readconf.execute(File.dirname(File.expand_path(__FILE__)))  # コンフィグレーションファイルの読込

  parent = CheckParent.new(ARGV[0])
  parent.execute(ARGV[0], tree, checked)          # チェック

  $errorURL = {}                                  # エラーをまとめる

  $result.each do | key, value |
    case value[:結果]
    when 'OK', '未チェック', 'nocheck'            # 正常もしくはあえてチェックしていない
      next
    end
    $errorURL[key] = value
  end

  finishtime = Time::now()

  output = Output.new
  output.execute(starttime, finishtime, checked)  # 結果出力
rescue => error
  exeptlog = ExceptLog.new
  binding.pry
  exeptlog.execute(self, error)
  exit 1
end

2. 起動

 起動は

ruby /パス/ソースファイル名.rb URI
 で行います。
earthcar(アースカー)