• Login
sketchucation logo sketchucation
  • Login
ℹ️ GoFundMe | Our friend Gus Robatto needs some help in a challenging time Learn More

How to install a Ruby Gem for use in SketchUp

Scheduled Pinned Locked Moved Developers' Forum
27 Posts 8 Posters 9.4k Views
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.
  • W Offline
    Whaat
    last edited by 17 Jan 2010, 17:25

    Hey,

    I downloaded Ruby-prof for profiling my code since it seems way better than the built in Ruby Profiler. However, I'm a bit stuck on how to install and use it. It comes as a GEM file and when I tried to install it from the Windows command line using the code.

    gem install rub-prof
    

    but I got some error about not being able to locate library or something.

    However, even if I did manage to install it correctly what would the next step be? How do I know which files were installed? I assume that I would have to copy everything that got installed into the SketchUp plugins folder so I need to know all the files that are included in the GEM file.

    Can anyone provide any guidance here?

    Thanks

    SketchUp Plugins for Professionals

    1 Reply Last reply Reply Quote 0
    • T Offline
      tbd
      last edited by 17 Jan 2010, 18:40

      did you checked "If you are running Windows, make sure to install the Win32 RubyGem which includes a pre-built binary. Due to a bug in ruby-gems, you cannot install the gem to a path that contains spaces" ?

      and "If you are running Windows, then install the Windows specific RubyGem which includes an already built extension."

      or you can download the gem (which is a renamed .zip file), unpack, check the data.tar.gz and see the files that are inside and put them in SU dir.

      you can also add to the $: the paths from Ruby install and see if it works.

      use ProcMon to trace the files that it tries to open and see where to put your files.

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

      1 Reply Last reply Reply Quote 0
      • W Offline
        Whaat
        last edited by 18 Jan 2010, 03:25

        Argghhh! I think i installed all the files correctly in the SketchUp plugins folder and I get this message when SketchUp loads:

        @unknownuser said:

        Error Loading File xxxxxxx.rb
        127: The specified procedure could not be found. - C:/Program Files/Google/Google SketchUp 7/Plugins/ruby_prof.so

        Seems to be problem with ruby-prof.so which I have placed in the Plugins folder.
        If someone is able to succesfully install ruby-prof on a windows system, please let me know what you did to get it to work!

        Download Ruby-prof here:
        http://rubyforge.org/frs/?group_id=1814&release_id=29249

        Thanks!

        SketchUp Plugins for Professionals

        1 Reply Last reply Reply Quote 0
        • T Offline
          tbd
          last edited by 18 Jan 2010, 14:17

          weird. it loads properly under Ruby command line, but it gives a DLL init error when loading under SU.
          tried to rebuild with PellesC and I get the same error. I think maybe it is due BugSplat library SEH control that screw things up.

          my suggestion - get another ruby profiler library 😉

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

          1 Reply Last reply Reply Quote 0
          • A Offline
            AdamB
            last edited by 18 Jan 2010, 14:21

            I've build it on a Mac and works just fine. I had to remove some Rails stuff from the startup but it works pretty nicely too.

            Whaat, you should have in you plugins folder:

            ruby_prof.so
            ruby-prof.rb
            ruby-prof (folder)

            ruby-prof.rb just loads all the ancillary files as normal.

            Can you give the actual error you get.

            Developer of LightUp Click for website

            1 Reply Last reply Reply Quote 0
            • W Offline
              Whaat
              last edited by 18 Jan 2010, 14:30

              @adamb said:

              I've build it on a Mac and works just fine. I had to remove some Rails stuff from the startup but it works pretty nicely too.

              Whaat, you should have in you plugins folder:

              ruby_prof.so
              ruby-prof.rb
              ruby-prof (folder)

              ruby-prof.rb just loads all the ancillary files as normal.

              Can you give the actual error you get.

              Hi Adam,

              I posted the error above. I'm not sure what you mean.

              And...I put the correct files in the plugins folder as you say. 😕
              Seems like a Windows issue. I'll have to try it on my Mac yet to see if I can get it to work.

              Thanks.

              SketchUp Plugins for Professionals

              1 Reply Last reply Reply Quote 0
              • J Offline
                Jim
                last edited by 18 Jan 2010, 14:32

                When I installed yaml, I noticed there may be a case issue - I had to use:

                require 'Yaml' (or require 'YAML') because require 'yaml' did not work; although the library file names were all lower case. (Windows XP SP 3)

                I unfortunately no longer have it installed so I'm going from memory here...

                Hi

                1 Reply Last reply Reply Quote 0
                • T Offline
                  tbd
                  last edited by 18 Jan 2010, 14:44

                  @adamb said:

                  Can you give the actual error you get.

                  when in Sketchup, require 'ruby_prof.so' breaks in LoadLibrary function with 'Exception C0000139 Entry Point Not Found' which is weird as it works in normal Ruby

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

                  1 Reply Last reply Reply Quote 0
                  • T Offline
                    todd burch
                    last edited by 18 Jan 2010, 14:54

                    Could it be a PATH issue?

                    1 Reply Last reply Reply Quote 0
                    • T Offline
                      tbd
                      last edited by 18 Jan 2010, 15:35

                      @unknownuser said:

                      Could it be a PATH issue?

                      there is only loading the .so file which has dependency only for kernel32.dll, msvcrt and msvcrt-ruby18 - all loaded by SU anyway.

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

                      1 Reply Last reply Reply Quote 0
                      • A Offline
                        AdamB
                        last edited by 18 Jan 2010, 16:29

                        Yep, I see the same thing here. On windows it simply wont load. I've rebuilt it locally too.

                        Developer of LightUp Click for website

                        1 Reply Last reply Reply Quote 0
                        • Dan RathbunD Offline
                          Dan Rathbun
                          last edited by 19 Jan 2010, 02:16

                          @unknownuser said:

                          when in Sketchup, require 'ruby_prof.so' breaks in LoadLibrary function with 'Exception C0000139 Entry Point Not Found' which is weird as it works in normal Ruby

                          What version is the msvcrt-ruby18.dll...

                          ...that works in normal ruby?

                          ...that does NOT work in the SU folder?

                          (I got a similar error when I tried to get SU to load the 1.9.1 version ruby dll)

                          I'm not here much anymore.

                          1 Reply Last reply Reply Quote 0
                          • T Offline
                            tbd
                            last edited by 19 Jan 2010, 12:55

                            Dan: thanks, that was the problem. in Sketchup there were msvcrt-ruby18.dll version 1.8.0 and in Ruby was version 1.8.6

                            replacing the dll in Sketchup dir with the one from Ruby dir I was able to load

                            RubyProf.measure_mode = RubyProf;;CPU_TIME 
                            RubyProf.start
                              Sketchup.active_model.entities.each {|x| x.class}
                            result = RubyProf.stop
                            
                            File.open "d;/profile.txt", 'w' do |file|
                               RubyProf;;FlatPrinter.new(result).print(file)
                            end
                            
                            Thread ID; 32679270
                            Total; 7.168426
                            
                             %self     total     self     wait    child    calls  name
                             48.70      4.38     3.49     0.00     0.89        1  Sketchup;;Entities#each
                             20.50      7.17     1.47     0.00     5.70        1  Global#[No method]
                             12.39      0.89     0.89     0.00     0.00       23  Kernel#class
                             11.84      0.85     0.85     0.00     0.00        1  <Module;;Sketchup>#active_model
                              6.57      0.47     0.47     0.00     0.00        1  Sketchup;;Model#entities
                            

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

                            1 Reply Last reply Reply Quote 0
                            • W Offline
                              Whaat
                              last edited by 19 Jan 2010, 13:49

                              Awesome! Thanks everyone! I hope I can get it working too...

                              SketchUp Plugins for Professionals

                              1 Reply Last reply Reply Quote 0
                              • Dan RathbunD Offline
                                Dan Rathbun
                                last edited by 19 Jan 2010, 18:47

                                @unknownuser said:

                                Dan: thanks, that was the problem. in Sketchup there were msvcrt-ruby18.dll version 1.8.0 and in Ruby was version 1.8.6

                                replacing the dll in Sketchup dir with the one from Ruby dir I was able to load RubyProf

                                I thought so!

                                I always tell people, IF your using full ruby libraries with Sketchup... to make the msvcrt-ruby18.dll file in the Sketchup program folder/directory, the SAME version as your full ruby version. Otherwise your asking for Errors (such as newer library scripts calling methods that the older interpreter doesn't understand.)

                                I've given this advice several times over at Google Groups SU Developer's forum. Not sure if I have here. I also always say make a Sketchup/_BACKUP folder and drag the older DLL into that folder, before copying the newer 'full' DLL from the ruby/bin folder. (You never know, you may have a future need to test a script, running under the old DLL version.)

                                Glad I could help.

                                @Jim: Maybe this issue needs to be added to the Ruby Tips for Sketchup Sticky Links page?

                                I'm not here much anymore.

                                1 Reply Last reply Reply Quote 0
                                • Dan RathbunD Offline
                                  Dan Rathbun
                                  last edited by 19 Jan 2010, 22:03

                                  Re: Ruby Interpreter DLL: SketchUp vs Standard

                                  I downloaded the normal standard v 1.8.0 patch level 10 DLL (msvcrt-ruby18.dll) from:
                                  http://www.oldapps.com/Ruby.php?old_ruby=12
                                  and compared it against the backup that was installed with Sketchup v7.0 application.

                                  Both standard DOS command comp and the Support Tool WinDiff report both DLL files are identical.

                                  *(WinDiff is a file comparison utility that is installed with Windows Support Tools. The Support Tools are not installed automatically with Windows. You must manually browse the WIN install CD to the "Support Tools" folder, and run a separate setup.exeto install the tools.)

                                  I'm not here much anymore.

                                  1 Reply Last reply Reply Quote 0
                                  • Dan RathbunD Offline
                                    Dan Rathbun
                                    last edited by 19 Jan 2010, 22:18

                                    Re: Ruby Interpreter DLL: SketchUp vs Standard

                                    The Support Tool filever.exe displays versioning information inside exe and dll files:

                                    DOS cmd shell, filever verbose listing, in folder:
                                    C:\Program Files\Google\Google SketchUp 7_Backup
                                    This is the DLL file distro'd with Sketchup 7.x

                                    >filever msvcrt-ruby18.dll /v
                                    --a-- W32i   DLL   -         1.8.0.0 shp    811,008 02-19-2009 msvcrt-ruby18.dll
                                    
                                            Language        0x0000 (Language Neutral)
                                            CharSet         0x04b0 Unicode
                                            OleSelfRegister Disabled
                                            FileDescription Ruby interpreter
                                            InternalName    msvcrt-ruby18.dll
                                            OriginalFilenam msvcrt-ruby18.dll
                                            ProductVersion  1,8,0,0
                                            FileVersion     1,8,0,0
                                            LegalCopyright  Copyright (C) 1993-2003 Yukihiro Matsumoto
                                            OleSelfRegister Disabled
                                    
                                            VS_FIXEDFILEINFO;
                                            Signature;      feef04bd
                                            Struc Ver;      00010000
                                            FileVer;        00010008;00000000 (1.8;0.0)
                                            ProdVer;        00010008;00000000 (1.8;0.0)
                                            FlagMask;       0000003f
                                            Flags;          00000000
                                            OS;             00000004 Win32
                                            FileType;       00000002 Dll
                                            SubType;        00000000
                                            FileDate;       00000000;00000000
                                    

                                    This is the DLL file distro'd with Ruby ver 1.8.0-10

                                    >filever v180-10\msvcrt-ruby18.dll /v
                                    --a-- W32i   DLL   -         1.8.0.0 shp    811,008 08-11-2003 msvcrt-ruby18.dll
                                    
                                            Language        0x0000 (Language Neutral)
                                            CharSet         0x04b0 Unicode
                                            OleSelfRegister Disabled
                                            FileDescription Ruby interpreter
                                            InternalName    msvcrt-ruby18.dll
                                            OriginalFilenam msvcrt-ruby18.dll
                                            ProductVersion  1,8,0,0
                                            FileVersion     1,8,0,0
                                            LegalCopyright  Copyright (C) 1993-2003 Yukihiro Matsumoto
                                            OleSelfRegister Disabled
                                    
                                            VS_FIXEDFILEINFO;
                                            Signature;      feef04bd
                                            Struc Ver;      00010000
                                            FileVer;        00010008;00000000 (1.8;0.0)
                                            ProdVer;        00010008;00000000 (1.8;0.0)
                                            FlagMask;       0000003f
                                            Flags;          00000000
                                            OS;             00000004 Win32
                                            FileType;       00000002 Dll
                                            SubType;        00000000
                                            FileDate;       00000000;00000000
                                    
                                    

                                    *(filever is a file version utility that is installed with Windows Support Tools. The Support Tools are not installed automatically with Windows. You must manually browse the WIN install CD to the "Support Tools" folder, and run a separate setup.exeto install the tools.)

                                    I'm not here much anymore.

                                    1 Reply Last reply Reply Quote 0
                                    • A Offline
                                      AdamB
                                      last edited by 20 Jan 2010, 08:54

                                      Given there are many fixes between 1.8.0 and 1.8.6 - and using 1.8.6 doesn't seem to cause problems - I don't know why Google are shipping quite so old a dll. In particular, I noticed a few fixes in the changelogs to Ruby related to memory leaks.

                                      FYI Mac Sketchup uses 1.8.5

                                      Adam

                                      Developer of LightUp Click for website

                                      1 Reply Last reply Reply Quote 0
                                      • Dan RathbunD Offline
                                        Dan Rathbun
                                        last edited by 21 Jan 2010, 02:16

                                        Re: Ruby Interpreter DLL: SketchUp vs Standard

                                        The Support Tool bindiff.exe reports both files are identical.

                                        DOS cmd shell in folder:
                                        C:\Program Files\Google\Google SketchUp 7_Backup

                                        >bindiff /c msvcrt-ruby18.dll v180-10\msvcrt-ruby18.dll
                                        
                                        Identical  811,008 bytes
                                        
                                        File Count Summary
                                           Identical;      1 files
                                           Near Identical; 0 files
                                           Different;      0 files
                                           Left Only;      0 files
                                           Right Only;     0 files
                                           Errors;         0 files
                                           Total;          1 files
                                        
                                        Byte Count Summary
                                           Matched;    0 bytes differ
                                           Left Only;  0 bytes
                                           Right Only; 0 bytes
                                           Total;      0 bytes
                                        
                                        

                                        *(bindiff is a binary file comparison utility that is installed with Windows Support Tools. The Support Tools are not installed automatically with Windows. You must manually browse the WIN install CD to the "Support Tools" folder, and run a separate setup.exeto install the tools.)

                                        I'm not here much anymore.

                                        1 Reply Last reply Reply Quote 0
                                        • Dan RathbunD Offline
                                          Dan Rathbun
                                          last edited by 21 Jan 2010, 03:01

                                          @adamb said:

                                          ... I don't know why Google are shipping quite so old a dll. ...
                                          It may just be a staffing issue, they know it works with 1.8.0, but are probably reluctant to ship with 1.8.6 without massive testing. I can see management feeling such an task as being low priority.

                                          There was also at least one person at Google, who thought wrongly (the removed quote above,) that Ruby for Sketchup had to remain at v1.8.0 because the DLL (they thought,) had been extensively modified and compiled specially for Sketchup; and that to update to 1.8.6 or any other later release would be a huge project, not likely to occur any time soon.
                                          __Well, I think I've proved that assumption incorrect. The Ruby Interpreter DLLs are just copies of those distro'd with standard Ruby.

                                          @adamb said:

                                          Given there are many fixes between 1.8.0 and 1.8.6 - and using 1.8.6 doesn't seem to cause problems - ... In particular, I noticed a few fixes in the changelogs to Ruby related to memory leaks.
                                          A good reason to use 1.8.6 with Sketchup, and I have been since a few days after I installed 7.0 (and have had no problems, so far.)

                                          I would feel that 1.8.7 is still not ready (it just had a recent release to fix major security bugs.) But it's almost there.

                                          I tried to get Sketchup to load 1.9.1, but it did not like the DLL. I got the 'Entry Point Not Found' error. (Not sure if it was the Ruby guys who changed things, or if it was me renaming the msvcrt-ruby191.dll to msvcrt-ruby18.dll that was the problem.)

                                          There are those of us, who wish to run newer Ruby releases (especially the non-english users who need multibyte character support in the 1.9.x branch.) We should be able to run any Ruby release we wish.. and it would be nice if Sketchup was setup to facilitate our choice.

                                          @adamb said:

                                          FYI Mac Sketchup uses 1.8.5
                                          I suspect because of the major differences in OSX and Win32 programming, that there are different people working on the two implementations.

                                          Does OSX Leopard come with ver 1.8.5 pre-installed?
                                          _

                                          I'm not here much anymore.

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

                                          Advertisement