著作一覧 |
MASの作者がCE版Rubyの話を振ってくるのだが、今はメンテが止まっているとか、別に需要は無いんじゃないとしか答えられないんだが、CEってヨーロッパじゃ利用されてるのかな? と誰とも無く聞いてみたり。
久々に読むとおもしろい、と思った。
もじゃもじゃペーター (ほるぷクラシック絵本)(ハインリッヒ・ホフマン)
残念なことに絵が出ないので、英語版のほうも。
Struwwelpeter - mini gift edition(Hoffmann, Heinrich)
恐怖の教訓話がこれでもかこれでもか、と恐ろしい挿絵と共に繰り広げられる子供のための絵本だ。
もじゃもじゃペーターは風呂が嫌い、爪を切るのも嫌い、髪を切るのも嫌い。そこで表紙の絵のような素敵な姿になる。そしてある日、恐ろしい運命が彼を待ち受ける。そのほかにも指しゃぶりをやめない子供や、火遊びをする子供や、好き嫌いをする子供、そんな日常的な躾がまだ身につかない子供たちが巻き込まれる恐るべき日常が美しくも楽しいポエムに乗せられて淡々と描かれる。ヨーロッパから遠く離れたイングランドでマザーグースを子供たちが楽しんでいる同じころ、ドイツではもじゃもじゃペーターが猛威を振るっていたのだ。
作者(絵も)は19世紀のまじめで子供好きなお医者さんらしい。待合室で退屈している子供たちを慰めようと伝承話をネタに自ら絵本を作るナイスガイだ。その本の効き目は評判に評判を呼び、ついに出版され、ドイツ中の家庭に1冊という大ベストセラーとなり、日本でも翻訳出版され、誰もが知ってるもじゃもじゃペーターとなった。
(なんとなくティルに触発されて、ドイツもので)
ActiveScriptにはデフォルトオブジェクトというフィーチャがある。
具体的には、IActiveScript::AddNamedItemをSCRIPTITEM_GLOBALMEMBERSフラグ付きで呼ばれた場合に、該当オブジェクトのメソッドをグローバルな名前空間内で探索可能とするというものだ。
例)IE内でのwindowオブジェクト。alert('hello'); が実行可能なのは、JScriptの組み込み関数としてalertが用意されているからではない。windowオブジェクトがグローバルな名前空間内に含まれているため、windowオブジェクトのalertメソッドがオブジェクトの指定を省略しても呼び出せるからだ。
これを、ASRが実装することを検討する。
問題は、named itemがモジュールではなく、クラスのインスタンスだという点。モジュールであれば、簡単。
test/unitが実行されるのは、exit時。この時点で、named itemは解放され、SCRIPTSTATEはUNINITIALIZEDへ遷移している。したがって、ホスト提供オブジェクトはすでに切断されている。
追記:むとうさんから教わった方法で回避。
<package> <job> <script language="GlobalRubyScript"> require 'test/unit' class TestGRscript < Test::Unit::TestCase def setup end def test_constantiate assert_equal('Windows Script Host', Globals.wsh.Name) end def test_globalize assert(/^\d+\.\d+$/.match($WSH.Version)) end end exit Test::Unit::AutoRunner.run </script> </job> </package>
class B def bar() puts 'bar' end end @b = B.new # ASRがインポートしたオブジェクトと想定 def self.method_missing(s, *args) begin @b.send(s, *args) # とりあえず委譲 rescue NoMethodError super # 既定動作 end end bar # グローバルオブジェクトが処理する xz # 本当にエラー
上のほうで、constantiateなんて言葉をでっちあげたが、正しい言葉がわからない。
でも、concatenateは違うような(これは、単なる書き間違えみたいだな)。
communication as a reference to constantiate the variable
この用例は定数化みたいだが。
ジェズイットを見習え |
> Windows CE<br>Windows CE/Mobile版のRubyが欲しいと思う人はそれなりにいると思いますよ.<br>PDAが衰退してしまったのでそもそも動作機器が少ないと思いますが,日本だとW-ZERO3とかもありますし,Emmbdedな機器で使おうとか思ってるんじゃないでしょうか.<br>#.NET Compact Frameworkがあるのでなくてもそう困らないと思いますけど(^^;.
そうですか。確かにW-ZERO3はありますね。<br>とりあえずruby-talkの購読を勧めとこうかな。
test/unitとの相性ですが、Ruby-GNOME2でも同様の問題がありました。Ruby-GNOME2の場合はtestrbを使うと回避できるようですがどうでしょうか。<br><br>http://www.yotabanana.com/lab/20060116.html#p01
どうもありがとうございます。無事、動作しました。<br>しかし、これはこの手のライブラリ作ってる人に共通のトピックでしょうね。<br>#rjbはTestCaseのsetup、tearDownでJVMのロード/アンロードをしてるから、影響を受けてないのか。