まずクラス構造
基本となるクラスは、Processing::Appらしいのでまずそのクラス構成を知っておこうっていう訳で、ancestorsしたらこんな風に出た。
irb(main):007:0> Processing::App.ancestors => [Processing::App, Java::ProcessingCore::PApplet, Java::ProcessingCore::PConstants, Java::JavaLang::Runnable, Java::JavaAwtEvent::MouseListener, Java::JavaAwtEvent::MouseMotionListener, Java::JavaAwtEvent::KeyListener, Java::JavaAwtEvent::FocusListener, Java::JavaUtil::EventListener, Java::JavaApplet::Applet, Java::JavaAwt::Panel, Java::JavaxAccessibility::Accessible, Java::JavaAwt::Container, Java::JavaAwt::Component, Java::JavaAwtImage::ImageObserver, Java::JavaAwt::MenuContainer, Java::JavaIo::Serializable, Java::JavaLang::Object, ConcreteJavaProxy, JavaProxy, JavaProxyMethods, Object, Kernel]
うーん、よく分からん。じゃあincluded_modules
irb(main):009:0> Processing::App.included_modules => [Java::ProcessingCore::PConstants, Java::JavaLang::Runnable, Java::JavaAwtEvent::MouseListener, Java::JavaAwtEvent::MouseMotionListener, Java::JavaAwtEvent::KeyListener, Java::JavaAwtEvent::FocusListener, Java::JavaUtil::EventListener, Java::JavaxAccessibility::Accessible, Java::JavaAwtImage::ImageObserver, Java::JavaAwt::MenuContainer, Java::JavaIo::Serializable, JavaProxyMethods, Kernel]
やっぱりよく分かんない。なので、スクリプトを書いてクラス、モジュール構造を見やすくしてみる。
これで表示してみるとこんな風に出ました。
irb(main):006:0> Processing::App.tree_ancestors [C] Processing::App [C] Java::ProcessingCore::PApplet [M] Java::ProcessingCore::PConstants [M] Java::JavaLang::Runnable [M] Java::JavaAwtEvent::MouseListener [M] Java::JavaUtil::EventListener [M] Java::JavaAwtEvent::MouseMotionListener [M] Java::JavaUtil::EventListener [M] Java::JavaAwtEvent::KeyListener [M] Java::JavaUtil::EventListener [M] Java::JavaAwtEvent::FocusListener [M] Java::JavaUtil::EventListener [C] Java::JavaApplet::Applet [C] Java::JavaAwt::Panel [M] Java::JavaxAccessibility::Accessible [C] Java::JavaAwt::Container [C] Java::JavaAwt::Component [M] Java::JavaAwtImage::ImageObserver [M] Java::JavaAwt::MenuContainer [M] Java::JavaIo::Serializable [C] Java::JavaLang::Object [C] ConcreteJavaProxy [C] JavaProxy [M] JavaProxyMethods [C] Object [M] Kernel
なるほど、Processing独自なのは、
[C] Processing::App
[C] Java::ProcessingCore::PApplet
[M] Java::ProcessingCore::PConstants
っすね。