Subject: Re: [PATCH] Support for arbitrary main script names in Python plasmoids

Richard Dale richard.j.dale at gmail.com
Sat Feb 13 00:59:06 CET 2010


On Fri, Feb 12, 2010 at 10:17 AM, Richard Dale <richard.j.dale at gmail.com> wrote:
> On Thu, Feb 11, 2010 at 11:34 PM, Diego Casella ([Po]lentino)
> <polentino911 at gmail.com> wrote:
>>> ---------- Messaggio inoltrato ----------
>>> From: Richard Dale <richard.j.dale at gmail.com>
>>> To: plasma-devel at kde.org
>>> Date: Thu, 11 Feb 2010 18:37:55 +0000
>>> Subject: Re: [PATCH] Support for arbitrary main script names in Python
>>> plasmoids
>>> On Thu, Feb 11, 2010 at 6:02 PM, Luca Beltrame <einar at heavensinferno.net>
>>> wrote:
>>> > Hello,
>>> >
>>> > currently if you use Python plasmoids the main script *must* be named
>>> > "main.py" because it is hardcoded into pyappletscripts.py. When using a
>>> > different mainscript in the .desktop file (like Plasmate does) this will
>>> > ensure the plasmoid will not run (you get a NameError exception).
>>> Well currently in Plasmate there is not way to specifiy the main
>>> script (or main class).
>>
>> Actually, the main script and main class names are taken from the project
>> name; if you create a
>> RubyClock project, Plasmate will create a rubyclock.rb file, with a
>> MainRubyClock class inside it :)
>>>
>>> The Ruby plasmoid implementation doesn't use the Ruby equivalent of
>>> __dict__, but simply derives the main class name from the main script
>>> name. So I wasn't sure is you should specifiy a main *class* name in
>>> Plasmate like FooBar which would give a main script name of
>>> foo_bar.rb. Or whether you should give a main script name of
>>> foo_bar.rb the Plasmate form from which the class 'FooBar' is then
>>> derived.
>>>
>>> Currently in Plasmate the name of the applet is used to derive both
>>> the module (like a namespace), and the name of the class, which I
>>> think is wrong. For example, if you call your applet FooBar you get:
>>>
>>> module FooBar
>>>  class FooBar< PlasmaScripting::Applet
>>> ...
>>>
>>> I would rather the class was called 'Main' if you don't specifiy a main
>>> script.
>>
>> I'm sorry, but this is wrong: I've taken care of avoiding it since the
>> beginning
>> (I also reverted, a couple of days ago, a commit[1] that did exactly what
>> you just
>> described ).
> Ah OK - I was testing what the 'The_User' had just commited, which you
> have reverted. I think the name of the main script was wrong for
> MainForBar - it should be code/main_foo_bar.rb, and fixing that was
> why he made the change. Personally if a main script isn't specified I
> would prefer a class name of 'Main' and main script of 'main.rb' for
> Ruby.
I've just commited some changes to the Ruby folder and main script
name generation in Ruby so that it now works correctly. If you name
you project FooBar it will be put in a folder called 'foo_bar' and the
main script will be called 'main_foo_bar.rb'. If you don't follow this
convention the correct module and class name will not be generated
when the Ruby script engine tries to load the applet. I also enabled
creating Ruby Data Engines, as the Ruby api works file.

-- Richard


More information about the Plasma-devel mailing list