From: Mario S. <ma...@ru...> - 2016-07-22 02:31:50
|
Hello Thomas, What your looking for to allow your Custom Ruby library to work with libpeas, and various other things, that require the GTYPE, is the ability to register it. To do this, I utilize this method of creating the class name: module MyModule class MyCustomClass < GLib::Object unless defined? MYCUSTOMCLASS_TYPE MYCUSTOMCLASS_TYPE = self.name.split(":").collect {|x| x.empty? ? nil : x}.compact.join("_") type_register(MYCUSTOMCLASS_TYPE) end # Proceed with defining my class, and required methods end end This class is a simple class, that inherits from GLib::Object, but can inherit from anything, as long as somewhere in it's ancestry, GLib::Object is a parent class for it. What the above does is: Converts MyModule::MyCustomClass to MyModule_MyCustomClass (Or MYMODULE_MYCUSTOMCLASS in C terms), and then calls GLib::Object#type_register() with the class name, which is defined by MYCUSTOMCLASS_TYPE. I include a defined? check, incase the file is loaded / required multiple times, or somehow re-loaded, the class doesn't accidentally get re-registered with GLib. Once you have done this, you should be able to associate the MyModule::MyCustomClass::MYCUSTOMCLASS_TYPE (Or just TYPE for short), with libpeas, and have libpeas utilize this. Hope this helps you out. Mario Steele Ruby Developer C# Developer Java Developer On Thu, Jul 21, 2016 at 3:57 PM, Thomas Martitz <ku...@ro...> wrote: > Am 21.07.2016 um 21:48 schrieb cedlemo: > > All the hierarchy of classes, sub-class, dependencies have been done. > > I can observe this for my Peas module (and its classes) as well. > However, I'm taking about a custom class written Ruby (which shall > implement an interface). Without explicit inheritance from GLib::Object > it just inherits Ruby's Object. > > > > > > I didn't know about the interfaces or if they are supported. I am sure > > that Kou will give you a better answer on this advanced topic. > > Thank you anyway. I'll patently wait for Kou or any other knowledgeable > person then. > > Best regards > > > ------------------------------------------------------------------------------ > What NetFlow Analyzer can do for you? Monitors network bandwidth and > traffic > patterns at an interface-level. Reveals which users, apps, and protocols > are > consuming the most bandwidth. Provides multi-vendor support for NetFlow, > J-Flow, sFlow and other flows. Make informed decisions using capacity > planning > reports.http://sdm.link/zohodev2dev > _______________________________________________ > ruby-gnome2-devel-en mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-en > |