[Top] [Linux] [XML] [java] [favarite]
Last-Modified: Tue Sep 11 11:00:00 JST 2001
Rubyについてのメモです。
最近、オブジェクト指向スクリプト言語Rubyを使うようになりました。オブジェクト指向については理解不足、経験不足など多々ありますが、少しづつステップアップしたいと思っています。
以下に自作のスクリプトを公開しています。使用にあたっては各人の責任においてお願いします。以下のスクリプトによって生じた、いかなる損害について当方は責任を負いません。
バグ修正、改良は自由に行ってくださって結構です。できれば、どういう改良をしたか情報提供していただければ幸いです。
「Rubyを256倍使うための本 黄道編」が出ましたね。Apolloはいいですよ。WindowsでRubyにGUIを持たせたい場合はイチオシです。そのうち、Apolloで作ったものも紹介していきたいと思います。
「Rubyを256倍使うための本 邪道編」を参考にActiveScriptRubyをDelphiで使えるかどうか検証してみました。
タイプライブラリとして取り込んだMicrosoft Script Controlをフォームに貼り付け、LanguageプロパティをRubyScriptに設定します。(前回書くの忘れた。2001/1/16更新)
#!/usr/local/bin/ruby
class Hello
def initialize(msg)
@message = msg
end
def say
return "Hi " + @message
end
end
def create(str)
Hello.new(str)
end
unit RubyTestUnit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, OleCtrls, MSScriptControl_TLB, OleServer, RSCRIPTLib_TLB;
type
TForm1 = class(TForm)
RubyControl: TScriptControl;
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
F:Textfile;
str:string;
buf:string;
hello: Variant;
begin
AssignFile(F, ExtractFilePath(Application.ExeName) + 'hello.rb');
try
ReSet(F);
while not Eof(F) do
begin
Readln(F, buf);
str := str + buf;
end;
CloseFile(F);
except on E:Exception do
ShowMessage(E.Message);
end;
// messagebox(0, PChar(str), 'ruby test', MB_OK);
RubyControl.AddCode(str);
hello := RubyControl.Eval('create("' + Edit1.Text + '")');
{ VBだとRubyControl.CodeObject.create(...)という風に書けるけど... }
messagebox(0, PChar(String(hello.say)), 'ruby test', MB_OK);
{ hello.say でRubyのHelloクラスのsayメソッドを呼び出している }
end;
end.
AcrobatのFDF(Adobe Form Data Format)のキーとその値を表示するスクリプトです。
FDFでは日本語をUnicodeで格納しているため、変換によしだむさんのUconvを使用しています。
FDF.rb fdffile
key=valueのように表示されます。getContentsメソッドでキーと値のHashを取得することもできます。
TeXのdvips(k)で生成したPSファイルからフォント情報やEPSの情報などが取得できると便利ではないかと思い作りました。
まだ、追加したい機能もあるので今後バージョンアップ(使っていないクラスもあるし)する予定です。
texpsinfo.rb PSfile
使用フォント、埋め込みフォント、埋め込みEPSのリストが標準出力に表示されます。
TeXのdvips(k)で生成したPSファイルに埋め込まれているEPSの個々の情報が取得できると便利ではないかと思い作りました。ファイル名、Creator、BoundingBoxがタブ区切りで標準出力に表示されます。
実行には上記のtexpsinfo.rbが必要です。
epsinfo.rb PSfile
TeXのソース内の\index{...}に読みがなを付けます。
Gotokenさんのkakasiモジュールを使用しているので、kakasi本体とkakasiモジュールが必要です。
texidxruby.rb TeXfile