sketchucation logo sketchucation
    • Login
    🛣️ Road Profile Builder | Generate roads, curbs and pavements easily Download

    Stop processing rest of file?

    Scheduled Pinned Locked Moved Developers' Forum
    14 Posts 3 Posters 506 Views 3 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.
    • Dan RathbunD Offline
      Dan Rathbun
      last edited by

      So far I am trying my best to NOT touch or override either require or load themselves.

      I'm not here much anymore.

      1 Reply Last reply Reply Quote 0
      • tbdT Offline
        tbd
        last edited by

        have a separate loader.rb that checks if LIB exists and has functions required.
        if yes, require/load rest of your code, if not ...

        SketchUp Ruby Consultant | Podium 1.x developer
        http://plugins.ro

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

          Having to have yet ANOTHER file for each and every library or plugin package, is not what I am aiming at...

          ... besides that does not solve the idiot situation, trying to force a plugin to load, using load(), when require does not work.
          I'm not sure there is a solution to the idiot syndrome anyway. I (personally,) would not give any support, or waste any time responding, to an idiot who does not let the plugin load the way it's supposed to.

          I'm not here much anymore.

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

            ThomThom, for now do something like:

            module TT_FancyUtil
            
              # move require dependancy calls inside namespace
              require('TT/TT_Lib2') rescue raise(LoadError,'TT_Lib2')
              require('TT/TT_GUI') rescue raise(LoadError,'TT_GUI')
            
              # the rest of the module's code
            
            # way down the bottom of the namespace block;
            rescue LoadError => e
            
              case e.message
              when 'TT_Lib2'
                puts("LoadError; TT_Lib2 file is not present. .. blah blah blah...")
              when 'TT_GUI'
                puts("LoadError; TT_GUI file is not present. .. blah blah blah...")
              else
                puts("Error; #<#{e.class.name}; #{e.message}>")
                puts e.backtrace
              end
            
            end # module
            

            I'm not here much anymore.

            1 Reply Last reply Reply Quote 0
            • thomthomT Offline
              thomthom
              last edited by

              @unknownuser said:

              have a separate loader.rb that checks if LIB exists and has functions required.
              if yes, require/load rest of your code, if not ...

              Really don't want to use another file. Many of my plugins are self contained in a single file - apart from that they require TT_Lib. And I don't want to split it up just for this check.

              Thomas Thomassen — SketchUp Monkey & Coding addict
              List of my plugins and link to the CookieWare fund

              1 Reply Last reply Reply Quote 0
              • thomthomT Offline
                thomthom
                last edited by

                Found a way:

                <span class="syntaxdefault">require </span><span class="syntaxstring">'sketchup.rb'<br /></span><span class="syntaxdefault">begin<br />  require </span><span class="syntaxstring">'TT_Lib2/core.rb'<br /></span><span class="syntaxdefault">rescue LoadError </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> e<br />  </span><span class="syntaxcomment"># meh!<br /></span><span class="syntaxdefault">end<br /><br />module MagicPlugin<br />  </span><span class="syntaxcomment"># Voodoo<br /></span><span class="syntaxdefault">end if defined</span><span class="syntaxkeyword">?(</span><span class="syntaxdefault"> TT</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Lib </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault"> </span>
                

                Thomas Thomassen — SketchUp Monkey & Coding addict
                List of my plugins and link to the CookieWare fund

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

                  interesting!

                  Hmm ... I see rescue modifiers do not work with require(), for some reason ?

                  You could also do (if you did not want any module defined) ...

                  require 'sketchup.rb'
                  begin
                    require 'TT_Lib2/core.rb'
                  rescue LoadError => e
                    # meh!
                  else
                    module MagicPlugin
                      # Voodoo
                    end
                  end# begin
                   
                  

                  I'm not here much anymore.

                  1 Reply Last reply Reply Quote 0
                  • thomthomT Offline
                    thomthom
                    last edited by

                    @dan rathbun said:

                    Hmm ... I see rescue modifiers do not work with require(), for some reason ?

                    What you mean? What modifiers?

                    Thomas Thomassen — SketchUp Monkey & Coding addict
                    List of my plugins and link to the CookieWare fund

                    1 Reply Last reply Reply Quote 0
                    • tbdT Offline
                      tbd
                      last edited by

                      statement modifiers = conditional statements onto the end of a normal statement

                      ` name = first_name + last_name rescue "John Doe"

                      John Doe # if first_name and last_name are not defined`

                      SketchUp Ruby Consultant | Podium 1.x developer
                      http://plugins.ro

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

                        @thomthom said:

                        @dan rathbun said:

                        Hmm ... I see rescue modifiers do not work with require(), for some reason ?

                        What you mean? What modifiers?

                        The conditional keywords if and unless can be used in block position:
                        [ if| unless] ( expression)
                        statements
                        end

                        or modifier position:
                        statement [ if| unless] ( expression)

                        **rescue** can also be used in modifier poistion, but ... my attempt at this:
                        require('booboo.rb') rescue nil
                        ... does NOT trap the LoadError (because LoadError < ScriptError < Exception, and rescue only traps RuntimeError and subclasses by default.)

                        For a one-liner, we must use semi-colons:
                        begin require('booboo.rb'); rescue Exception; nil; end

                        I'm not here much anymore.

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

                        Advertisement