sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    [Plugin] Ruby Console+ (3.0.2) – updated 30.10.2017

    Scheduled Pinned Locked Moved Plugins
    61 Posts 18 Posters 37.2k Views 17 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A Offline
      Aerilius
      last edited by

      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.

      http://sketchucation.com/forums/download/file.php?id=115857

      Apart from that, modified scripts are now reloaded automatically.

      1 Reply Last reply Reply Quote 0
      • A Offline
        Anton_S
        last edited by

        Amazing update! 👍

        I can't wait to check it, since I'm not at my home computer now.

        1 Reply Last reply Reply Quote 0
        • M Offline
          matt.gordon320
          last edited by

          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!


          AE-Console Error.png

          1 Reply Last reply Reply Quote 0
          • A Offline
            Aerilius
            last edited by

            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!

            1 Reply Last reply Reply Quote 0
            • jolranJ Offline
              jolran
              last edited by

              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.

              1 Reply Last reply Reply Quote 0
              • A Offline
                Aerilius
                last edited by

                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?

                1 Reply Last reply Reply Quote 0
                • Rich O BrienR Offline
                  Rich O Brien Moderator
                  last edited by

                  Is it in the PluginStore? I see no update listed

                  Download the free D'oh Book for SketchUp 📖

                  1 Reply Last reply Reply Quote 0
                  • Rich O BrienR Offline
                    Rich O Brien Moderator
                    last edited by

                    Nevermind...I was just too eager on the trigger

                    Download the free D'oh Book for SketchUp 📖

                    1 Reply Last reply Reply Quote 0
                    • jolranJ Offline
                      jolran
                      last edited by

                      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
                      
                      1 Reply Last reply Reply Quote 0
                      • M Offline
                        matt.gordon320
                        last edited by

                        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!

                        1 Reply Last reply Reply Quote 0
                        • Dan RathbunD Offline
                          Dan Rathbun
                          last edited by

                          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::Console

                          If 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 becomes main.

                          Other times it starts as main, after attempting to set to some class like String, it is instead within AE::Console.

                          I'm not here much anymore.

                          1 Reply Last reply Reply Quote 0
                          • A Offline
                            Aerilius
                            last edited by

                            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).

                            1 Reply Last reply Reply Quote 0
                            • tt_suT Offline
                              tt_su
                              last edited by

                              @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

                              1 Reply Last reply Reply Quote 0
                              • A Offline
                                Aerilius
                                last edited by

                                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.

                                1 Reply Last reply Reply Quote 0
                                • tt_suT Offline
                                  tt_su
                                  last edited by

                                  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.

                                  1 Reply Last reply Reply Quote 0
                                  • A Offline
                                    Aerilius
                                    last edited by

                                    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))?

                                    1 Reply Last reply Reply Quote 0
                                    • tt_suT Offline
                                      tt_su
                                      last edited by

                                      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.

                                      1 Reply Last reply Reply Quote 0
                                      • A Offline
                                        Aerilius
                                        last edited by

                                        Big update to version 3.0.2!
                                        For development, see also on github. Contributions welcome!

                                        1 Reply Last reply Reply Quote 0
                                        • Dan RathbunD Offline
                                          Dan Rathbun
                                          last edited by

                                          When I update via EW (that indicates v3.0.2) I get v 3.0.1 after restarting SketchUp 2016.
                                          (EDIT: okay, I see that v3.0.1 is the EW release. So, n/m.)
                                          Manual d/l from GitHub:
                                          https://github.com/Aerilius/sketchup-console-plus/releases/


                                          Also, on my machine (Win7) with a high contrast custom charcoal system scheme the console is unusable.

                                          Issue #17 filed at GitHub repo.

                                          (Pic attached)

                                          ConsolePlusCharcoal.png

                                          I'm not here much anymore.

                                          1 Reply Last reply Reply Quote 0
                                          • M Offline
                                            MichaelS
                                            last edited by

                                            Hello

                                            and thank you so much Aerilius for the update of my favorite tool for coding/testing scripts in SketchUp.
                                            Nevertheless i miss the "reload scripts" button from the previous version.
                                            This was very convenient and fitted my workflow so well...
                                            I use an external editor (Notepad++) and save the files to my plugins folder. Once loaded by typing

                                            load "myscript.rb"
                                            

                                            the file was automatically kept in the autoload list. After editing a script and saving the modified file, a button press brought the modified version back into Sketchup for a testrun.
                                            Any chance to get my button back? Please? Or is this functionality somewhere and i haven't found it yet? Of course i could write a <reload_all_my_scripts>-function and call it from the console or add an icon to a SketchUp toolbar. Just thinking this functionality fitted so well into the console (since there's still the autoload list anyway)...

                                            best regards,
                                            Michael S.

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 3 / 4
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement