- 作成者投稿
- 2007年6月3日 3:43 pm #4405kamuycikapメンバー
Ver6からActiveRubyが利用できると言う事でさっそく利用してみたのですが、下記のようなプログラムを実行することが出来ません。
Ruby既存のクラスにたいしてメソッドを追加する内容です。EmEditorのマニュアルに記載されている下記内容に
「JavaScript、VBScript 以外の言語の使用方法は、サポートの対象外となります。
」
との下りがあるのですが、言語の使用方法とは違うとの認識で記載させていただきます。このプログラムは別の開発環境で目的の通り動作するプログラムです。
<テストした環境>
統合開発環境:RDE———————————–
#language = “RubyScript”class String
def em_msg
return self + ” is Good Editor!!” + “n”
end
endbuf = “EmEditor”
#Rubyのコンソール表示メッセージが下記になるのでコメント化
#print buf.em_msg#EmEditorなので下記の命令でエディターに文字表示させたい
Window.document.write( “#{buf.em_msg}” );—————————————————
上記プログラムをRDE上にて実行すると
EmEditor is Good Editor!!
とコンソールに表示されます。
目的通りの実行結果です。しかしながら、EmEditor上で実行するとエラーになってしまいます。
何故でしょうか?
「undefined method `em_msg’ for “EmEditor”:String」これはEmEditorのサポート外なのでしょうか?
Rubyの文法についてのスレッドを立てるのは間違いだと思うのですが、まともに動作するスクリプトが実行できないのは納得出来ない部分です。2007年6月4日 3:16 pm #4406ShuHeiメンバー試しにIEからActiveScript rubyを使った処理を
書いてみたところ同じ現象が発生したので
十中八九ActiveScript Ruby側の実装でしょう。EmEditor側とは特に関係ないかと思います。
emtest class Emstring < String
def em_msg
return self + " is good editor.n"
end
endclass String
def em_msg
return self + " is good editor.n"
end
endbuf = Emstring.new("EmEditor")
buf2 = "EmEditor"
@window.document.write buf.em_msg
@window.document.write buf2.em_msg # エラーで停止する
@window.document.write buf.em_msg取り急ぎEmeditor側から対応するのはムリそうな
のでStringを継承して対応してみてはいかがでしょう?上記プログラムをRDE上にて実行すると
EmEditor is Good Editor!!
とコンソールに表示されます。
目的通りの実行結果です。これもOLE(だっけ?)からrubyに渡して処理するか、
直接rubyインタプリタで処理するかという違いでしょうね。 - 作成者投稿
- このトピックに返信するにはログインしてください。