Ruby - リンクチェック - readconf.rb コンフィグレーションファイルの読込

 クラウディア
1. コンフィグレーションファイルの読込
2. コンフィグレーションファイルの置き場所と書式

1. コンフィグレーションファイルの読込

 コンフィグレーションファイルの読込を行うクラスです。
#!/usr/bin/env ruby
require('pry')
require('inifile')

=begin

コンフィグレーションファイルの読込を行う

=end

class ReadConf
  def initialize()
  end

  def execute(path)
    begin
      inifile = IniFile.load(path+'/.linkcheck')

      if (inifile[:tag])                              # [tag] セクションがある
        if (inifile[:tag]['id'])                      # id アイテムがある
          id = inifile[:tag]['id']                    # id = の定義を取得
          split = id.split(/\s/)                      # ホワイトスペースで分割

          split.each do | attribute |
            $checkID.push(attribute)
          end
        end
      end

      if (inifile[:link])                             # [link] セクションがある
        if (inifile[:link]['nocheck'])                # nocheck アイテムがある
          id = inifile[:link]['nocheck']              # nocheck = の定義を取得
          split = id.split(/\s/)                      # ホワイトスペースで分割

          split.each do | uri |                       # 定義してある URI を
            $nocheck.push(uri)                        # チェックなしに設定
          end
        end
      end

      if (inifile[:parent])                           # [parent] セクションがある
        if (inifile[:link]['nocheck'])                # nocheck アイテムがある
          id = inifile[:link]['nocheck']              # nocheck = の定義を取得
          split = id.split(/\s/)                      # ホワイトスペースで分割

          split.each do | uri |                       # 定義してある URI を
            $nocheckParent.push(uri)                  # チェックなしに設定
          end
        end
      end

      if (inifile[:output])                           # [output] セクションがある
        if (inifile[:output]['fileoutput'])           # fileoutput アイテムがある
          id = inifile[:output]['fileoutput']
          split = id.split(/\s/)                      # ホワイトスペースで分割

          split.each do | attribute |
            $output[attribute] = nil
          end
        end
      end

      #binding.pry

      if ($output.has_key?('html'))                   # html への出力あり
        $output['html'] = 'index.html'                # index.html で初期化

        if (inifile[:html])                           # html のセクションあり
          if (inifile[:html]['filename'])             # filename アイテムがある
            $output['html'] = inifile[:html]['filename']
          end
        end
      end

    rescue => error
      exeptlog = ExceptLog.new
      binding.pry
      exeptlog.execute(self, error)
      exit 1
    end
  end
end

2. コンフィグレーションファイルの置き場所と書式

 コンフィグレーションファイルは、ソースと同じディレクトリに置きます。  ファイル名は
.linkcheck
 以下の形式で記述します。

[tag]
id=タグ名

[link]
nocheck=URI
 1~2行  [tag] セクションで id= に続けて id="" の形式でIDを記述しているタグを指定します。  複数ある場合は、半角スペースで区切って列挙します。  4~5.行  [link] セクションで nocheck= に続けて、あえてリンクチェックしたくないリンク先を指定します。  指定したリンク先はそのサブディレクトリを含めて、チェック対象としません。  id の記述と同様、複数ある場合は、半角スペースで区切って列挙します。
earthcar(アースカー)