rubyize
DESCRIPTION
RubyKaigi 2006TRANSCRIPT
Rubyize による言語境界の越え方
Win32OLE• 助田さん作成• IDispatch
OLEオートメーション• VARIANT型フラグとデータによる汎用型
• ITypeInfoオブジェクトの型情報
COM• VTBL
IUnknown* (QI、 AddRef、 Release)• Factory
– IClassFactoryCoCreateInstance API
• レジストリ– ProgID– CLSID
WSC• Windows Script Component
• ScrObj.DLL
• スクリプトが COMのオブジェクト
• RubyizeもWSC
Rubyize• ASR付属インストールディレクトリ \samples\rubyize
• 準備: regsvr32 rbobj.wsc
• 利用: Set ruby = CreateObject("ruby.object")
ruby = ActiveXObject.new ("ruby.object")
Rubyize
JScript
VBScript
Rubyize
Html Application
DOM
VBScript
Ruby
ActiveScriptRuby/Win32OLE
name
String:Arton
VBClass:val
{‘VB’=>}
Rubyize
HOST
ScrObj.DLL OLE*.DLL
RScript18.DLL
msvcrt-ruby18.dll Object
IDispatch*
IActiveScriptSite*
IActiveScript*
IDispatch*
ActiveScriptHost• 直接 Rubyをホストするより簡単• スクリプトニュートラル