blogに引っ越しました。最優先にしても良かったのだが、ちょっと丁寧にやって少しでも安定した感じにしたほうがいいだろうと思ってね(思ってもない)。あれ、おっかしいなぁ。俺4日目くらいに登録したと思ったんだけどな...?昨日のunaristさんお疲れ様、今回企画してくれたkatsyoshiさん、書いてくれた皆ありがとう。今日はmikutterのお誕生日です。ありがとう、これからもよろしく。今年を振り返る記事は正月中にこのブログで公開します。このブログで昔いつもやってたようなプラグイン開発のtipsを書くっていうのをやってみよう。mikutterプラグインを作って公開している人は結構見かけるけど、こういうプラグインが割とよくある。これは、ツイートを右クリックしてごぼうをクリックすると、そのツイートに対して「ごぼう♡」とリプライするプラグイン。書き換えれば変更できるので柔軟性がありそうだが、こういったバリアブルな値を毎回ソースから書き換えるのは不便。そんなわけで、mikutterには設定があるし、一部のプラグインは確かに設定に対応しているが、「こんなしょうもないプラグインが設定できてもなー、ていうかやり方がわからん」と思われることだろう。実際設定の提供方法は、意外なことにドキュメント化されてない(しろよ!)。はい、ということで、知ってる人にはつまらんと思うけど、このプラグインに設定をつけてみよう。UserConfigその前にUserConfigについておさらいしてみる。UserConfigは設定を保存するためのkey-value型のデータストアみたいなもの。こんな風にHashのようにアクセスすることができる。未設定ならnilが返ってくるのもHashと一緒。UserConfig[:gobou_sign]書き込みも然り。"♡"ただ、これで取り出したオブジェクトは全てfreezeされているので、ちょっと書き換えるだけでもコピーを取る必要がある。ArrayやHashをはじめ、JSONで扱えそうなデータはたいがい扱えるが、再帰的にfreezeされる。全プラグインで共通なので、キーのシンボルは「プラグインスラッグ_」からはじめるのが習慣になってる。あと、あまりでかいデータを入れると遅くなるはずなので気をつけよう。データのキャッシュとかちょっとしたデータベースが必要な場合はこれは使えないね。DSLつまりUserConfigに設定を書き込むのが最もスタンダードなやり方ということなので、定数にしていたのは全部これで置き換えれば問題無さそう。問題はGUIだけど、意外とつけるのは難しくない。少なくとも、Gtkなどを知る必要はない。具体的には以下のようなコード。3endこれだけで、スクショのような設定画面が出てくる。いうのはウィジェットの種類。全てのウィジェットで共通しているのは、第一引数が設定の説明、第二引数が書き換えたい設定のキー、ということ。特殊で、特定の範囲の整数を入力させるために使うので、第三引数に最小値、第四引数に最大値を渡してる。ごぼうプラグインも改良してみよう。うん、これは素晴らしい。手軽にいろんな設定を増やせる。面倒そうで敬遠してる人も多かったようだけど、意外と簡単だと思ってもらえたんじゃないかな。書いてあるから、参考になるかな。ようなメソッドが定義してあるので、ここを見れば使いたいウィジェットがあるかどうか判断できる。コード読めじゃあ記事の意味があまりないから、以下に列挙するけど。