Skip to content

Posts

テスト追加2

テストカバレッジを100%まであげた。

どうしてここ通らないんだろうってよく見たら変数名間違えていたバグだった。

テスト追加

MDMMLで関数分割してテスト反映してなかったりしていたのを追加。

パラメータゼロ値で呼んだら落ちたり思ったのと違う動きをしていたり。

テストもたまに見返すと面白い。

Ginkgoわからん

MDMMLじゃない話。

https://onsi.github.io/ginkgo/ でテストを、

Describe(){
    Context(){
        // 準備
        It(){
            Expect()
        }
        // 次の準備
        It(){
            Expect()
        }
        // 後片付け
    }
}

みたいな感じで書いていたら、思った通りの動きにならなくてハマった。

どうやら、Contextの中は上から順番に実行されるのではなく、

Describe(){
    Context(){
        // 準備
        // 次の準備
        // 後片付け
        It(){
            Expect()
        }
        It(){
            Expect()
        }
    }
}

となるらしい。

やりたい順番で実行したければ、

Describe(){
    It(){
        // 準備
        Expect()
        // 次の準備
        Expect()
        // 後片付け
    }
}

ってやらないといけないのかなぁ。

Read more

MDMML CI構築

いまさらながらGitHub ActionsでCIを設定した。

Actionsのバージョン指定なしgoは1.15.15なんだね。もうじき1.18が出るのに。

crontabの範囲指定について

crontab、-で範囲指定ができるけれど、大小関係が逆だったらどうなるか気になったので調べてみた。

59-1 * * * * time

こういうやつ。

dockerでalpine使って動かしたところ、想定通り59,0,1で実行された。

リファクタリング

通らなくなっていたテストを通した。

バイナリものはパッと見でどこが違うかわかりにくいのが難点。。

リファクタリング

データ構造の変更と、それに関連する部分を修正。

テーブルのセルごとに読み込んで保持するようにした。

テストが通らなくなった。。

セル(小節)ごとに変換したら、ループとか現在のオクターブとか状態として持たせないといけないのか・・ちょっと、あまり、よくない気がする。

マークダウンパーサーを使ってみたが

やりたかったのは、hタグでセクションをブロック化して取り出して加工だったのだけど、 実際やってみて、hタグでブロック化はHTML的にも無理じゃんってなった。

結局自前でやっていくしかないのか。。

で、これをやっていて思いついたのが、今は読み捨てているテーブルのヘッダー部分をセクション代わりに使えないかなと。

ひとつのテーブルで同じパートを複数書くのはできなくなるけど。

Read more

goldmarkを読む

難解だと思って避けていたASTを直接見れば、goqueryを使わなくてもよいのでは?と思ってgoldmarkのソースを眺めてみた。

rendererのhtml.goが参考になると思うんだけど、なかなか長大な感じ。 RegisterFuncsで各要素ごとの処理を登録していけばよいのかな。

うーん。変換結果としてASTを取る方法がわからぬ。HTMLになってしまう。 もしかして、extensionとして書かないといけない? となるとちょっと大変そうだなぁ。。

Read more