[Plugin] Ruby Console+ (3.0.2) β updated 30.10.2017
-
The perfect companion for testing code thanks!
-
Wow!!!
Aerilius, you're so amazing!!!
Variety of style templates, bigger input zone, that's just amazing
-
An update is ready!
By replacing ace editor 1.1.0 by version 1.1.2, we now have auto-completion (ctrl+space) and code snippets support. I connected the autocompleter to Ruby so that it displays only completions (methods etc.) that are available in the current context.Apart from that, modified scripts are now reloaded automatically.
-
Amazing update!
I can't wait to check it, since I'm not at my home computer now.
-
Hello!
I'm getting this error. I'm using Fredo's Additional Plugin Folders script to control who in our firm has access to which plugins, just for reference. Any thoughts on what it might be?
Thanks!
-
That is a Javascript error caused by something in ace.js (you're not getting a popup error because I redirect such errors into the console). When I integrated ace into the webdialog there were a couple of incompatibilities with IE, that I tried to patch. It seems I didn't get that one. I'll try to work-around it. Thanks for reporting!
-
Thank you Aerilius. This one will be used a lot! Very useful.
I also got that JS error at first launch. Did not hinder me to use the dialog though, so it was surpressed.
This morning I did not get that error.
Another thing, I have to launch the plugin twice to get dialog showing. Persistantly. Tried relaunching SU 3 times, all the same. Not a big deal, but someone impatient might Think the plugin doesent work. -
The JavaScript error should be supressed in version 2.1.1.
jolran, I can't reproduce it. When you open the Ruby Console+ for the first time (where it doesn't open), does something appear in the native Ruby Console?
-
Is it in the PluginStore? I see no update listed
-
Nevermind...I was just too eager on the trigger
-
Hi. Yes there seams to be Typerror during load.
Ruby console spits this out. Next time I launch dialog opens, and no error message.
Error; #<TypeError; can't convert Symbol into String> C;/Program Files (x86)/Google/Google SketchUp 8/Plugins/ae_Console/Console.rb;297;in `join' C;/Program Files (x86)/Google/Google SketchUp 8/Plugins/ae_Console/Console.rb;297;in `initialize' C;/Program Files (x86)/Google/Google SketchUp 8/Plugins/ae_Console/Console.rb;297;in `map' C;/Program Files (x86)/Google/Google SketchUp 8/Plugins/ae_Console/Console.rb;297;in `initialize' C;/Program Files (x86)/Google/Google SketchUp 8/Plugins/ae_Console/Console.rb;295;in `each' C;/Program Files (x86)/Google/Google SketchUp 8/Plugins/ae_Console/Console.rb;295;in `initialize' C;/Program Files (x86)/Google/Google SketchUp 8/Plugins/ae_Console/Console.rb;90;in `new' C;/Program Files (x86)/Google/Google SketchUp 8/Plugins/ae_Console/Console.rb;90;in `open' C;/Program Files (x86)/Google/Google SketchUp 8/Plugins/ae_Console/Console.rb;578
-
Error is no longer coming up for me, just like jolran said. Thanks gents! Looking forward to using what looks to be an awesome console upgrade!
-
v2.1.3
Testing the namespace feature does not seem to work.
when I first open the Console+, and type
self
, it returns an instance of AE::ConsoleIf I try to switch to a module it does not work.
Sometimes the text changes in the box, other times it does not and keeps resetting to "global".If I cause an error by typing "module Dan" the output is an exception backtrace, and
self
becomesmain
.Other times it starts as main, after attempting to set to some class like String, it is instead within AE::Console.
-
Yes, the namespace feature is the last missing piece that doesn't work in some versions of Ruby. I've fixed it, but not yet published, because I also want to inspect a problem with garbage collection (closed AE::Console instances stay in memory).
-
@aerilius said:
(closed AE::Console instances stay in memory).
I had the same issue with SKUI. After diggin into it it appeared to be the callback handlers that held on to variables from the scope they where defined in causing circular references back to the webdialog. I had to do some awkward workaround to avoid that:
https://github.com/thomthom/SKUI/blob/master/src/SKUI/window.rb#L461 -
Thanks, I'll look into that.
As far as I could analyze my code, it should not permanently keep references of these dialogs. So I've started compiling a patched Ruby version that can reverse-lookup references of an object. -
The issue I found wasn't explicitly holding on to variables, but when you create a block in Ruby the outer variables will be available to the block - this implicitly binds objects to that block.
So when you create a block for the event handlers of a webdialog you implicitly bind the webdialog variable from the outer scope to the block which ends up creating a circular reference. -
But as far as I know Ruby's gabrage collector is able to release circular references. The object diagram (from the linked ruby-find-references) looks ok. I haven't yet understood fully understood what is happening.
So if I avoid that the proc includes a reference to the dialog, I can not easily use instance variables in the proc (without using hacks like
__send__(:instance_variabe_get)
)? -
I'm not sure it can release all circular dependencies. Also remember that SketchUp's API classes are defined in C - maybe there's some small differences happening there.
I'm not really 100% sure what was going on. I was not pleased with the workaround I had to apply to make SKUI clean up properly, but it did work. I'd be very interested in hearing what you find out.
-
Big update to version 3.0.2!
For development, see also on github. Contributions welcome!
Advertisement