- 1. 概要
- 2. インストール
- 3. ファイル
- 4. ソース
- 5. 参考サイト
1. 概要
「id」を記述しているタグが複数あるので。
「id」の記述を行っているタグを「ini」ファイルで指定できるようにしようと思ったのです。
2. インストール
「inifile」というモジュールが必要なようです。
「gem」でインストールするには。
gem install inifile
「FreeBSD」の「ports」でインストールするには。
「root」ユーザ権限で。
cd /usr/ports/textproc/rubygem-inifile
make
make install
3. ファイル
ファイルを。
~/.linkcheck
としたかったのですが。
先頭の。
#!/usr/bin/env ruby
のためかホームディレクトリの定義がなくなっているようなので、当面、ソースディレクトリと同じディレクトリに配置することにしました。
まず「<a href="#なんとか">」と記述しているリンク先を探すために。
[tag]
id=
と記述して、「id」の箇所にスペースで区切って、「id」を定義しているタグを記述することにしました。
事情があって、チェックしたくないリンク先があって。
[link]
nocheck=URI
の形式で記述して、これもスペースで区切って列挙できるようにしました。
4. ソース
本番のソースは別途掲載しました。
サンプルとして。
#!/usr/bin/env ruby
require('inifile')
inifile = IniFile.load('.linkcheck')
puts("全有効行")
puts("#{inifile}")
puts("\n分類")
inifile.each do | key, value |
puts('key = ['"#{key}"'] value = ['"#{value}"']')
end
puts("\n[:tag] を見る")
puts('inifile[:tag]'"#{inifile[:tag]}")
puts("\n[:output] を見る")
puts('inifile[:output]'"#{inifile[:output]}")
というソースを書き、「ini」ファイルとして下記を読みこませて。
[tag]
id=h4 h5 a div span
[link]
nocheck=https://px.a8.net/ https://go.microsoft.com/fwlink/
[output]
#file =
filename=linkchecker-out.html
silent =
実行すると下記のような結果が得られます。
> ./ソースファイル名.rb
全有効行
[tag]
id = h4 h5 a div span
[link]
nocheck = https://px.a8.net/ https://go.microsoft.com/fwlink/
[output]
filename = linkchecker-out.html
silent =
分類
key = [tag] value = [id]
key = [link] value = [nocheck]
key = [output] value = [filename]
key = [output] value = [silent]
[:tag] を見る
inifile[:tag]{"id"=>"h4 h5 a div span"}
[:output] を見る
inifile[:output]{"filename"=>"linkchecker-out.html", "silent"=>nil}
つまり、セクション名をキーとしたハッシュからアイテム名をキーとしたハッシュを作成しているってことでしょうか。
よくできているのは、先頭が「#」の行は読み飛ばしてくれているところです。
5. 参考サイト
本ページは、下記のサイトを参考にさせていただきました。
「Python や Rubyでの INI ファイルの参照」
|
|