ChangeLogの読み込みとハッシュへの格納
2004-11-28-5
[Chalow][Programming]
chalow についてのメモ。
ChangeLog の処理を「格納」と「変換」にきっちり分ける方針にした。
で、ChangeLogReader.pm というやっつけな Perl Module を作った。
chalow から読み込み部分を切り出し整理したもの。ChangeLogを泥くさく
パーズしてハッシュに格納するだけ。特にカッコイイことはしていない。
chalow の次バージョンに入れる予定だが、とりあえず以下に置いておく。
<http://chalow.net/misc/ChangeLogReader.pm>(そのうち削除)
以下のように使う。debug_print() の中身も参照のこと。
なんかに便利かも。 ref. [2004-11-25-5]
以下「格納」の方針についてのメモ。つか、ChangeLogReader.pm の仕様。
- entry, item単位でアクセスできるようにハッシュに格納する。
プレインテキストで格納し、HTML変換は後の処理で行なう。
- item headerからカテゴリを切り出し格納する。
- item IDを決定する(格納のために必要となる)。
- 非公開item「* p:」を消す。
- プラグマitemを特別キーでハッシュに格納する。
- 格納するitem contentは、末尾の空白・改行の連続は削除する。
- 「*」から始まる行に「: 」がない場合は、行そのものがitem headerに
なる。
ChangeLog の処理を「格納」と「変換」にきっちり分ける方針にした。
で、ChangeLogReader.pm というやっつけな Perl Module を作った。
chalow から読み込み部分を切り出し整理したもの。ChangeLogを泥くさく
パーズしてハッシュに格納するだけ。特にカッコイイことはしていない。
chalow の次バージョンに入れる予定だが、とりあえず以下に置いておく。
<http://chalow.net/misc/ChangeLogReader.pm>(そのうち削除)
以下のように使う。debug_print() の中身も参照のこと。
chalowでの用途以外にも、ChangeLogを他のフォーマットに変換するとき#!/usr/bin/env perl use strict; use ChangeLogReader; my %all_entries; # hash for all ChangeLog entries # {XXXX-XX-XX}{"eh"} - Entry header # {XXXX-XX-XX}{1,2,3,...}{"ho"} - Item header (original text) # {XXXX-XX-XX}{1,2,3,...}{"co"} - Item content (original text) # {XXXX-XX-XX}{1,2,3,...}{"cat"} - Category (array) # {XXXX-XX-XX}{1,2,3,...}{"a"} - Author # {XXXX-XX-XX}{"message-top"} - Pragma item # {XXXX-XX-XX}{"message-bottom"} - Pragma item # {XXXX-XX-XX}{curid} - Item ID manager my $fn = shift @ARGV; open(F, $fn) or die; binmode(F); my @all_lines = (<F>); close F; store_changelog(\%all_entries, \@all_lines); debug_print(\%all_entries);
なんかに便利かも。 ref. [2004-11-25-5]
以下「格納」の方針についてのメモ。つか、ChangeLogReader.pm の仕様。
- entry, item単位でアクセスできるようにハッシュに格納する。
プレインテキストで格納し、HTML変換は後の処理で行なう。
- item headerからカテゴリを切り出し格納する。
- item IDを決定する(格納のために必要となる)。
- 非公開item「* p:」を消す。
- プラグマitemを特別キーでハッシュに格納する。
- 格納するitem contentは、末尾の空白・改行の連続は削除する。
- 「*」から始まる行に「: 」がない場合は、行そのものがitem headerに
なる。
この記事に言及しているこのブログ内の記事