Ruby/GTKの部屋

作成物一覧

Rubyアプリケーション
vRedit
1.0.0
Ruby/GTKを利用した、コード変換もできるグラフィカルエディタ
den8
0.1.0
電信八号のアドレスデータをSylpheed用に変換するツール
unify
0.1.0
Rubyのソースをrequireをたどって一つにまとめるツール
rb2html
0.1.0
Rubyのソースを色づけしてHTMLに変換するツール
Rubyライブラリ
DTree
0.1.2
DelphiのVCLにあるTTreeNodes/TTreeNodeと同じように、 ツリー構造を扱えるクラス
IFProxy
0.2.0
Ruby内で閉じているGtk::ItemFactory代替ライブラリ
Cによる拡張ライブラリ
Gtk::ItemFactory実装
Ruby/GTK 0.25に対するパッチを公開しました
Ruby/GTK 0.24に取り込まれました
Ruby/GTKにItemFactoryを実装するコード
Ruby関連RPMパッケージ
RubyEB
1.4-0vl2

SWIG関連RPMファイルはSWIG本家にSWIG/Rubyが取り込まれたため、 今後再配布する際にはSWIGパッケージのみを配布することとなります。 が、予定は未定です…

Rubyアプリケーション

vRedit

更新履歴

1.0.0
ついにツールバーを実装。
ワードラップとツールバーの表示・非表示を設定可能に。
統合バージョンは今後サポートされなくなりました。
とりあえず開発に一段落つけます。
[BUG]起動時に開くファイルを指定できない…はず。
[BUG]その前に、Ruby/GTK-0.23以降では起動できない… 早く修正しなきゃ(TT。
0.3.0
悲願の「検索(Search)」そして「置換(Replace)」を実装。
更新履歴(Changelog)を[Info]-[Version]で表示される、"Version Information"ダイアログの"Changelog"タブで参照可能にした。
Ddnux上で実行されていたときに限り、ライセンス条項を表示できるようにした (かなり邪悪なやり方で。でもソースを軽くするためだから許して…)。
ダイアログ周りのソースを"vRdlg.rb"に移した。
unifiedバージョンはこちらです。
0.2.0
かなり大幅に改革。
GtkItemFactoryが現在のRuby/Gtkではサポートされていないので代用品の IFProxy(後述)というクラスを作成し、 メニューの作成をスマートにした。
これにともなってショートカットキーを実装。
実行時に与える引数によってファイル(それも複数)を開けるようにした。
終了確認の実装。
バージョン情報の表示もするようにした。
あとはバグつぶしとエラー対策。
0.1.0
ルビー本を参考にグローバル変数を使わないようにし、クラスに分けた。
現在時刻を表示するボタンをつけ、押すと時刻を挿入するようにした。
保存時コードを指定できるようにした。
0.0.2
タイトルバーにコード体系に加えソフト名とファイル名も表示。
0.0.1
作っていたものを公開。

ソフト紹介

名前から気づく人は…いないですかね。 VineLinuxについてくるVineToolsの1つ、Veditに近いものをつくっています。 ベースは http://ruby.freak.ne.jp/gtk/のなかにあるtextedit.rbです…が、 現在ではかなり大幅に書き直したため、原形をとどめていないです。 Veditからアイディアは多少いただいてはいますが、コードはほぼスクラッチですし (言語が違うから当然。textedit.rbの方からはいただいていますが(爆))、 ライセンス的にやばいとは言わせません…じゃなくて言わないでください(汗)。 動作確認環境はVineLinux1.1+ruby-1.4.3-2(VinePlus)+ruby-gtk-0.22-3(VinePlus) です。

特長は…Kconvによる文字コード自動判別機能、 および保存時のコード体系の指定できる機能(改行コードはまだ未対応 …やればできるんだろうけど必要性をあまり感じないし)、 IFProxyの現在唯一の実例であるとともにスマートな実装を示している(自画自賛)、 そして将来性があること(笑)です。

配布条件はGPLです。おそらく未熟なソースなのでバグや効率改善方法などがあったら メール でお願いします。宣伝歓迎です。 このソースをもとに何か書いたら教えていただけるとうれしいです。

Ruby/GTK0.23以上では動作しないようです。修正はいずれすると思いますが…

お知らせ:配布ファイルはvRedit.htmlからとれるtar+gzのみです。 ツールバーの実装に伴い、unify.rbを使用したものは今後作りません。 スクリプトが分散していて気持ち悪いという人は0.3.0をご利用ください。

インストール方法

落としてきたvRedit.tar.gzを展開します。

# tar zxvf vRedit.tar.gz

それから、作成されたvRedit/に移動します。

# cd vRedit

スーパーユーザに。

# su Password: ******(パスワードです(^^))

install スクリプトを走らせます。

# ./install

ちなみにinstallスクリプトはヘルプを # ./install --helpで見ることができます。現在は--prefixしか理解しません。 デフォルトでは/usr/local/binにvReditができます。

で、最後。

# vRedit &

とするだけ。

ToDo

setupスクリプトを使う
次回更新には対応したいなぁ…
多言語化
gettextを使わなくてもRubyなら何とかなりそう。 ちなみに現在は英語圏の人にも使ってもらえるように、 メニューは英語になっています。でもわかるでしょ?(^^;
もっとカスタマイズ機能の追加
永久の課題です。

den8

更新履歴

0.1.0
実用に達する。

ソフト紹介

DTreeを作った目的のようなもの。 電信八号で使われているアドレス帳の形式を、 Sylpheedのアドレスに使われているXML形式にコンバートするスクリプト。 元のファイルはALIASES.ALIで決めうちになっていて、標準出力にはきだします。

配布条件はGPLとします。もしかしたら今後、 DTreeを介した多種類アドレス帳コンバータに化ける「かも」しれません。

unify

更新履歴

0.1.0
vRedit用に書いたもの。走り書きの域を脱していない(爆)。

ソフト紹介

多くの人に使ってもらうためにはソースコードが1つのほうがいいだろう、 と思って書きました。プログラマ向けじゃなくて利用者向けの処置。

実行時の引数として指定したRubyのメインソースコードを読み込み、 その中のrequireで指定されているライブラリ名のうち、 「"(ダブルクォーテーション)」で囲まれているファイルが、 Rubyスクリプトかつ同じディレクトリに存在するとみなして、 自動的にメインソースコードに組み込み標準出力に吐き出します。 使用法は、あらかじめ.soや.dllなファイルは「'(シングルクォーテーション)」 で囲んでおいた上で # ./unify.rb vRedit.rb > vRedit_u.rbのようにしてください。 あくまで自分用に書いたものなのでシンプルですが、 その分エラーチェックなどは考慮していないので、そこを覚悟の上ならどうぞ。

配布条件はGPL。もし何かのお役に立つならどうぞ。 バグ報告、修正案おまちしております(でも積極的なメンテはしないけど)。

rb2html

更新履歴

0.1.0
既知の不具合はあるものの実用上問題なさそうなので公開。

ソフト紹介

こっちはこのページでも使っているもので、 RubyのソースコードをHTMLに自動変換するスクリプトです。というか、 私自身がいちいちWWWに公開するときに手作業でやりたくなかったのと、 あとコメントとか予約語がうまく表示できないかなぁ、と思って作りました。 動作確認環境はruby-1.4.0-1(VinePlus)〜ruby-1.4.3-2(VinePlus)です。

漢字に関してはKconvによってEUC-JPに出力しています。

既知の不具合としては「unless line =~ /#[{$@].*/ # unless expandable sharp」 のように同一行にコメントとしての#とコメントでない#が混在していると、 コメントとして認識されないことや、実用上は問題ないですが、 埋め込みドキュメントのはじまりでない、文字列オブジェクトとして「=begin」 「=end」があるとその行の予約語が色づけされないことがあります。 誰かいい解決方法があったら教えて下さいm(._.)m。

# Rubylexを使えばいいようなのですが…時間がない。

配布条件はGPLです。

Rubyライブラリ

DTree

更新履歴

0.1.2
DTree::itemを追加。ルート直下の、TreeNodeインスタンス群の配列を返します。
0.1.1
Insertの実装と、恥ずかしい英語のミスを直した (あまりに恥ずかしいのでテレホタイム外の緊急修正)。
0.1.0
初リリース。

ライブラリ紹介

DelphiのVCLにあるTTreeViewの内部クラスTTreeNodes、TTreeNodeと同じように、 ツリー構造を扱うことを目論んだライブラリ。 使い方は、ライブラリの最下部のコメントの中にあるスクリプトを、 動作させてみて下さい。大体わかると思う。 den8.rbにも使われていますので、参照してみて下さい。

IFProxy

更新履歴

0.2.0
CheckMenuItemが正常に動作するようになった。
0.1.0
vRedit用に書いたものを単独公開。
実用上必要な機能はアクセラレータキーの表示以外は揃っていると思う。
仕様はもしかしたら変更される可能性があります。

ライブラリ紹介

Gtk::ItemFactory代替ライブラリ。vReditを含めRuby/Gtkアプリを書く上で、 今後必要だと思って必要に迫られて書いたもの。 もしかして最新のruby-gtkソースコードを追っていれば必要ないのかもしれないが、 そこそこきれいに実装できていると思う(自画自賛でしょうけど(^^;)。 結構便利なはず。でもドキュメントはもう少しお待ちを。 現在はソースがドキュメントになっております(爆)。 でもコメントはそこそこはいっている…はず。

配布条件はGPL。このライブラリを使って何か書かれたのでしたら、 教えていただけるとうれしいです。

でも、自分でRuby/GTKのItemFacoryを使ってこれ相当以上のものを実装しちゃったから 今後メンテナンスされる確率は限りなく0です。

Cによる拡張ライブラリ

Gtk::ItemFactory実装

実装状況

ItemFactoryの実装は現時点でruby-gtk本体に取り込まれています。

ここでは取り込まれていない機能の実装、及び整理をしています。 具体的内容については下にあるRDドキュメントを参照して下さい。

ダウンロード

iftest.rb
Gtk::ItemFactoryをテストするスクリプト
itemfactory-0.25-5.patch.gz
Ruby/GTK-0.25のパッケージにあてるパッチ
itemfactory-ja.rd
動作解説のドキュメント

おまけ

radiomenuitem.patch.gz
RadioMenuItemにset_groupを実装するRuby/GTK-0.25用パッチ

Ruby関連RPMパッケージ

RubyEB

パッケージの説明

にゃすさん 作のRubyEBライブラリをRPMとしてパッケージングしたものです。 といっても実際やったことといえばRuby/GTKのSPECファイルを読んでから、 ちこっと改造して当てはめただけなんですけどね。 でもVinePlusにはEBそのものもアップされていたりするので、 結構役立つのではないでしょうか?

更新履歴

各地にあるVinePlusのミラーサーバーから取得できます。

1.4-0vl2
Ruby-1.6.1以降に対応するためリパック。
1.4-0vl1
ファーストリリースです。
ホームに戻る
このページに対する感想・リンク希望などがありましたら、 dellin@team-ct.orgまでメールください。 Valid CSS! Valid XHTML 1.0! 私はH"(エッジ)を使用しています
Ruby Ring
←前】 【一覧】 【輪頁】 【次→