まずクラス構造

基本となるクラスは、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
っすね。