« [本] 物しか書けなかった物書き (ロバート・トゥーイ) | トップページ | [Ruby] Win32OLE »

2007年4月 1日 (日)

[Ruby] Win32OLE マルチプラットフォーム対応版 0.00001(2007-04-01)

[ruby-list:43329]に急遽対応すべく、 マルチプラットフォーム対応版を作成しました。 まだ初期バージョンなのでやっと動くという程度です。 1.0がリリースできる頃には、まともに動作するものができるだろうという 期待を込めて、0.00001からスタートします。 一応 Ruby 1.8 の Win32OLE Version 0.6.9 互換にしています。以下のスクリプトをwin32ole.rbという名前で保存してお使いください。簡単な動作確認は、Vine Linux 4.1 の Rubyで実施しています。

注意:ちゃんと内部の動きもふくめ、意味の理解できる人だけ使うようにしてください。

#
# win32ole.rb
# for multi-platform version of Win32OLE
# VERSION 0.00001(2007-04-01)
#
begin
  require 'win32ole.so'
rescue LoadError
  class WIN32OLERuntimeError < RuntimeError
  end
  def unsupported
    raise(WIN32OLERuntimeError, "sorry, not supported in this environment.")
  end
  module UNSUPPORTED
    def initialize(*argv)
      unsupported
    end
    def method_missing
      unsupported
    end
  end
  class WIN32OLE
    include UNSUPPORTED
    VERSION="0.00001(2007-04-01)"
    CP_ACP = 0
    CP_OEMCP = 1
    CP_MACCP = 2
    CP_THREAD_ACP = 3
    CP_SYMBOL = 42
    CP_UTF7 = 65000
    CP_UTF8 = 65001
    ARGV = []
    module VARIANT
      VT_ARRAY = 8192
      VT_BOOL = 11
      VT_BSTR = 8
      VT_BYREF = 16384
      VT_CY = 6
      VT_DATE = 7
      VT_DISPATCH = 9
      VT_ERROR = 10
      VT_I1 = 16
      VT_I2 = 2
      VT_I4 = 3
      VT_INT = 22
      VT_PTR = 26
      VT_R4 = 4
      VT_R8 = 5
      VT_UI1 = 17
      VT_UI2 = 18
      VT_UI4 = 19
      VT_UINT = 23
      VT_UNKNOWN = 13
      VT_USERDEFINED = 29
      VT_VARIANT = 12
    end
  end
  class WIN32OLE_VARIABLE
    include UNSUPPORTED
  end
  class WIN32OLE_METHOD
    include UNSUPPORTED
  end
  class WIN32OLE_TYPE
    include UNSUPPORTED
  end
  class WIN32OLE_EVENT
    include UNSUPPORTED
  end
  class WIN32OLE_VARIABLE
    include UNSUPPORTED
  end
end

ToDo

  • インストーラをつける。

  • Ruby 1.9 相当のWin32OLEに対応する。

  • ドキュメントを書く。

  • WIN32OLE_TYPE.ole_classesなどのクラスメソッドもちゃんと対応する。

  • せめて、各メソッドの引数のチェックぐらいは、WindowsのWin32OLEと同じにする。

|

« [本] 物しか書けなかった物書き (ロバート・トゥーイ) | トップページ | [Ruby] Win32OLE »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [Ruby] Win32OLE マルチプラットフォーム対応版 0.00001(2007-04-01):

« [本] 物しか書けなかった物書き (ロバート・トゥーイ) | トップページ | [Ruby] Win32OLE »