On Mon, Jan 23, 2017 at 09:30:56AM +0100, Josef Reidinger wrote: > Hi developers, > I found one design issue and I am not sure what is correct expected > usage. Problem is with id of widget used in yast. Till now I thought > that it can be any basic type, so string, symbol, number, whatever. > But during friday debugging of issue with ReplacePoint CWM widget I > found that some libraries and calls have limitation > > 1) CWM expects that id of widget is String, and as ID is used that > string. If not, it will abort with nil id ( as it try to get string > only )
Yes. > 2) call Yast::UI.ReplaceWidget accept only symbol as id of replace > point. Nothing else is accepted. No. Actually in all places where YUI expects a widget ID, you can pass a symbol, **or** a term whose value **can** be a non-symbol. And we always pass a term whose name is `id` (written `Id` in Ruby), and the value is typically a symbol for hand coded widgets but string for CWM widgets. But [the documentation](https://doc.opensuse.org/projects/YaST/openSUSE11.3/tdg/ReplaceWidget.html) only mentions the first of the overloaded signatures, the one with `symbol`. > So I think now you see why CWM ReplacePoint widget have troubles, as Id > cannot be symbol and! String at same time. In the end I solve it with > some workaround, but I would like what is intended usage? Really > unlimited basic types? Or String only or Symbol only? I think it make > sense to fix such annoying expectations. We have control over both > parts, so we can change it. I just do not know all reasons behind, so > if you have idea about these two limitations, if you can write it. > > And of course if you have any opinion or idea about this id and its > limitation, I will welcome it. See also https://github.com/yast/yast-yast2/pull/535 -- Martin Vidner, YaST Team http://en.opensuse.org/User:Mvidner Kuracke oddeleni v restauraci je jako fekalni oddeleni v bazenu
signature.asc
Description: Digital signature
