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 の記述と同様、複数ある場合は、半角スペースで区切って列挙します。
|
|