[plugin] Ruby Code Editor - UPDATED to v3.0 3/4/2013

[plugin] Ruby Code Editor - UPDATED to v3.0 3/4/2013

Postby alexschreyer » Thu Feb 04, 2010 7:01 pm

Hi All,



EDIT (3/4/2013): This plugin has been updated to version 3.0. The plugin got a major update! Some of the new features are: better environment stability (editor, scrolling, results, etc.), code completion for SketchUp classes and methods and a variety of other minor updates.

This code editor plugin offers an easy-to-use and visually appealing way to create and modify Ruby scripts directly within SketchUp. These scripts can then be used to create geometry, add functionality or add data within the SketchUp 3D modeling environment. The SketchUp Ruby API provides an extensive set of functions to automatize SketchUp in many ways or create scripted, computational geometry.

I created this editor mainly for two reasons: One is that when I write code, I permanently need to look up documentation. To make this easier, I added a bunch of reference webpages to a browser in a tab. Also, a dropdown above the editor contains some common code snippets that can be inserted at the current cursor position. Version 3.0 also introduces a code-completion feature that you can invoke at any point by clicking CTRL-SHIFT. It contains SketchUp’s classes and methods.

The other reason I wrote this as a plugin that works right inside of SketchUp is that I wanted it to give easy access to the Ruby coding environment and behave a bit more like a real code editor. To accomplish this, I added a bit of jQuery magic to make it look good and have some additional features. I also added the excellent CodeMirror 3.1 syntax highlighting engine. This provides the editor with multi-language code highlighting, correct TAB control, bracket matching and many more features. Just load the plugin and give it a try to see for yourself!

The following video gives a brief overview of the current version:



You can get this editor from my website (and see a changelog) at:
http://www.alexschreyer.net/projects/sketchup-ruby-code-editor/

For more on what you can do with it, check out my book "Architectural Design with SketchUp" (especially chapter 6):

http://sketchupfordesign.com/

Cheers,
Alex
0
Last edited by alexschreyer on Tue Mar 05, 2013 4:34 pm, edited 6 times in total.
Author of "Architectural Design with SketchUp":
http://sketchupfordesign.com/
User avatar
alexschreyer 
PluginStore Author
PluginStore Author
 

Re: [plugin] Ruby Code Editor as an extended WebConsole

Postby remus » Thu Feb 04, 2010 7:28 pm

:shock: thank you! this is awesome!
0

remus 
 

Re: [plugin] Ruby Code Editor as an extended WebConsole

Postby thomthom » Thu Feb 04, 2010 7:40 pm

Looking very nice.

got a couple of questions though:

console.png



The Ruby Console reports no error - but does output the puts statements.
0
Thomas Thomassen — SketchUp Monkey & Coding addict
List of my plugins and link to the CookieWare fund
User avatar
thomthom 
PluginStore Author
PluginStore Author
 

Re: [plugin] Ruby Code Editor as an extended WebConsole

Postby Chris Fullmer » Thu Feb 04, 2010 8:00 pm

Ooh I'm excited to test this out. i'm a huge believer in Jim's web console. The thought of anything to improve it make me giddy.

Chris
0
Lately you've been tan, suspicious for the winter.
All my Plugins I've written
User avatar
Chris Fullmer 
SketchUp Team
SketchUp Team
 

Re: [plugin] Ruby Code Editor as an extended WebConsole

Postby alexschreyer » Thu Feb 04, 2010 8:13 pm

@thomthom: The bottom of the page disappears when the window width gets so small that the file name breaks into the next row. I wanted to keep the layout fluid so that elements adjust on resize, but maybe I can find a better way to arrange the page more reliably.

Not sure why there is no output. I didn't touch Jim's code that deals with capturing the Ruby response - does this also happen with the original Web Console?

Cheers, Alex
0
Author of "Architectural Design with SketchUp":
http://sketchupfordesign.com/
User avatar
alexschreyer 
PluginStore Author
PluginStore Author
 

Re: [plugin] Ruby Code Editor as an extended WebConsole

Postby Jim » Thu Feb 04, 2010 8:44 pm

A most excellent update Alex!
0
Hi

Jim 
Global Moderator
 

Re: [plugin] Ruby Code Editor as an extended WebConsole

Postby Chris Fullmer » Thu Feb 04, 2010 9:01 pm

As far as the bottom output goes, I see it behaving exactly as Jim's does. What ever the script returns is output below. All puts statements get output in the Ruby Console.
0
Lately you've been tan, suspicious for the winter.
All my Plugins I've written
User avatar
Chris Fullmer 
SketchUp Team
SketchUp Team
 

Re: [plugin] Ruby Code Editor as an extended WebConsole

Postby Chris Fullmer » Fri Feb 05, 2010 1:55 am

So one thought, if its possible to clean this up I don't know - but the ruby console errors that get output are trying to display a lot of html markup now. A simple spelling error in model.selection returned this:

Code: Select all
model = Sketchup.active_model
<br/>ent = model.active_entities
<br/>sel = modqerel.selection
<br/>
<br/>dist = 100
<br/>
<br/>sel.to_a.each do |e|
<br/>  if e.is_a? Sketchup::Face
<br/>    e.pushpull dist
<br/>  end
<br/>
<br/>
<br/>end
"(eval):3:in&nbsp;&lsquo;initialize&rsquo;:&nbsp;undefined&nbsp;local&nbsp;variable&nbsp;or&nbsp;method&nbsp;&lsquo;modqerel&rsquo;&nbsp;for&nbsp;#&lt;RubyEditor:0x9912568>"


I added an image since I think it shows the error more clearly than the code block above.
error.png


I have no clue how that would be fixed.

Also, I am a little torn on the undo button. You set it so that it automatically wraps everything into a single undo command, which is nice so that a single press of "undo" will undo everything that was done in the script. But at the same time, I kind of don't like that because I'm worried I might forget to to write in my own start and commit operation methods. Don't know if that makes sense? I also don't know if I really would want it back how it was. Maybe this is a better workflow that I just need to adapt to.

Still though, I am liking it a lot!

Chris
0
Lately you've been tan, suspicious for the winter.
All my Plugins I've written
User avatar
Chris Fullmer 
SketchUp Team
SketchUp Team
 

Why can't we coordinate effort

Postby chrisglasier » Fri Feb 05, 2010 2:53 am

I know it is common for researchers to do their own thing but surely in this technically connected world we few should work together for the benefit of others.

A link and a pic ...

SU API.png


For my part I would like to incorporate these things into one interface.

Whatthink?

Chris
1
With JSON machines we can analyse what is to be achieved so that IT can help with automation to achieve it.
User avatar
chrisglasier 
PluginStore Author
PluginStore Author
 

Re: [plugin] Ruby Code Editor as an extended WebConsole

Postby alexschreyer » Fri Feb 05, 2010 4:49 am

Thanks for the feedback, everybody! Keep it coming...

@Chris Fullmer: Looking at the result capture code, it appears to convert characters such as the newline into HTML characters before sending it to the dialog. I tried to find a way around this - to no avail. Sending a newline \n to the execute_script doesn't work for me. Apparently that's why Jim put these conversions in there. I'll try later if there is an easier way to "encode" these before sending and "decode" them in Javascript in the dialog.

@chrisglasier: I remember your nameset approach from earlier. It can very well work with my editor. At some point, it would be great to have a code completion available, which could be your method. I am thinking of the user placing the caret, then clicking a key combination and then having a window pop up (like yours), where the method can be selected. How is your window implemented? I can easily incorporate something that resides in a DIV with Javascript.

Cheers,
Alex
0
Author of "Architectural Design with SketchUp":
http://sketchupfordesign.com/
User avatar
alexschreyer 
PluginStore Author
PluginStore Author
 

Re: [plugin] WebConsoleEX - Themed Controls

Postby Dan Rathbun » Fri Feb 05, 2010 12:39 pm

alexschreyer wrote:I have also not tested this on a mac.

For the PC, put the following META tag in the HEAD section, so the browser displays Themed Controls instead of those old ugly plain Win 3.x style controls (ie buttons, scrollbars, etc.)

The Mac (Safari) should just ignore the tag.

HTML
Code: Select all
   <!-- Use MS Common Controls ver 6+ if available -->
   <!--  (also known as XP style themed controls.)  -->
   <META HTTP-EQUIV="MSThemeCompatible" CONTENT="Yes">

_
0
    I'm not here much anymore. But a PM will fire email notifications.
    User avatar
    Dan Rathbun 
    PluginStore Author
    PluginStore Author
     

    Re: [plugin] WebConsoleEX - filename location

    Postby Dan Rathbun » Fri Feb 05, 2010 12:43 pm

    alexschreyer wrote:@thomthom: The bottom of the page disappears when the window width gets so small that the file name breaks into the next row. I wanted to keep the layout fluid so that elements adjust on resize, but maybe I can find a better way to arrange the page more reliably.

    I'd like to see the rb filename on the line below the toolbar (as a step towards future tabbed multi-snippet interface where the filename would be on the tabs anyway.)
    0
      I'm not here much anymore. But a PM will fire email notifications.
      User avatar
      Dan Rathbun 
      PluginStore Author
      PluginStore Author
       

      Re: [plugin] WebConsoleEX - puts output

      Postby Dan Rathbun » Fri Feb 05, 2010 12:57 pm

      ThomThom wrote:(No output?) The Ruby Console reports no error - but does output the puts statements.
      alexschreyer wrote:@thomthom: Not sure why there is no output. I didn't touch Jim's code that deals with capturing the Ruby response - does this also happen with the original Web Console?

      Yes it happens with the original WebConsole.

      (1) Keep in mind that the output pane in the WebConsole (currently) displays the result of the eval method, NOT the output stream of STDERR and/or STDOUT as the SUConsole does. (This is why for multiple statements you see only the result from the LAST statement.)

      (2) The puts method returns nil so you won't see anything if Jim's code stripped textstring "nil" out.
      0
        I'm not here much anymore. But a PM will fire email notifications.
        User avatar
        Dan Rathbun 
        PluginStore Author
        PluginStore Author
         

        Re: [plugin] WebConsoleEX - result capture code

        Postby Dan Rathbun » Fri Feb 05, 2010 2:53 pm

        alexschreyer wrote:@Chris Fullmer: Looking at the result capture code, it appears to convert characters such as the newline into HTML characters before sending it to the dialog. I tried to find a way around this - to no avail. Sending a newline \n to the execute_script doesn't work for me. Apparently that's why Jim put these conversions in there. I'll try later if there is an easier way to "encode" these before sending and "decode" them in Javascript in the dialog.

        Yes the HTML conversion may be necessary for the WebDialog side but not for the STDOUT.

        Alex YOU caused the HTML tags to also go to STDOUT by inserting the line "p r" AFTER the conversion gsub! statements. IF "p r" is needed, move it up before the conversion statements.
        0
          I'm not here much anymore. But a PM will fire email notifications.
          User avatar
          Dan Rathbun 
          PluginStore Author
          PluginStore Author
           

          Re: [plugin] WebConsoleEX - nil evaluation

          Postby Dan Rathbun » Fri Feb 05, 2010 3:07 pm

          Dan Rathbun wrote:(2) The puts method returns nil so you won't see anything if Jim's code stripped textstring "nil" out.

          OK if a var evaluates to nil, and then you convert it to a String with .to_s, the result is an empty length String.

          So line 73 needs a nil test, thus:

          r!=nil ? r=r.to_s : r='nil'

          (Don't just have "r" as the boolean expression, because false values would get set to 'nil' instead of 'false'.)
          0
            I'm not here much anymore. But a PM will fire email notifications.
            User avatar
            Dan Rathbun 
            PluginStore Author
            PluginStore Author
             

            Re: [plugin] Ruby Code Editor as an extended WebConsole

            Postby alexschreyer » Fri Feb 05, 2010 4:26 pm

            Thanks, Dan, for going through this so thoroughly. Everyone, please feel free to suggest code improvements. I would like to make this as useful as possible. Of course, I'll mention every help on the "About" tab.

            @Dan: I'll incorporate your revisions into the output code. That is really the part here that I had looked at the least.

            I like the idea of having tabbed multiple files. With the current tab support that should be relatively easy to implement.

            And thanks for the hint on the Windows UI look for IE. I didn't even know about the tag.

            Cheers,
            Alex
            0
            Author of "Architectural Design with SketchUp":
            http://sketchupfordesign.com/
            User avatar
            alexschreyer 
            PluginStore Author
            PluginStore Author
             

            Re: [plugin] WebConsoleEX - abort operation

            Postby Dan Rathbun » Fri Feb 05, 2010 6:16 pm

            I think I see another problem. If an error occurs don't you need to abort the operation instead of committing it?

            Try something like this:
            Code: Select all
              add_action_callback("exec") do |webconsole_dialog, p|
                v = webconsole_dialog.get_element_value('console').strip
                # puts v    # what's this for -- testing ??
                r = nil
                begin
                  Sketchup.active_model.start_operation "RubyEditor"
                  begin # evaluation
                    r = eval v
                  rescue => e
                    r = e
                    raise # pass to outer rescue clause
                  end # eval
                rescue
                  Sketchup.active_model.abort_operation
                else # only do if NO errors
                  Sketchup.active_model.commit_operation
                ensure # always do this
                  r!=nil ? r = r.to_s : r='nil'
                  p r
                  r.gsub!(/ /, "&nbsp;")
                  r.gsub!(/\n/, "<br>")
                  r.gsub!(/'/, "&rsquo;")
                  r.gsub!(/`/, "&lsquo;")
                  r.gsub!(/</, "&lt;")
                  webconsole_dialog.execute_script("document.getElementById('results').innerHTML='#{r}'")
                end
              end # callback
            0
              I'm not here much anymore. But a PM will fire email notifications.
              User avatar
              Dan Rathbun 
              PluginStore Author
              PluginStore Author
               

              Re: [plugin] WebConsoleEX - default key

              Postby Dan Rathbun » Fri Feb 05, 2010 6:30 pm

              Alex.. you did not change the Name of the DefaultSettings Key ('WebCon'), so your plugin is overwriting the values for Jim's standard WebConsole in the registry.

              There is always the possibilty that some people may still wish to use Jim's "plain Jane" version from time to time, even with yours installed.

              You should setup a unique Keyname for your defaults.
              0
                I'm not here much anymore. But a PM will fire email notifications.
                User avatar
                Dan Rathbun 
                PluginStore Author
                PluginStore Author
                 

                Re: [plugin] Ruby Code Editor as an extended WebConsole

                Postby alexschreyer » Fri Feb 05, 2010 7:45 pm

                I'll change the dialog name. Must have overlooked that one. I changed the class name.

                In the meantime, I figured out how to get linebreaks from a file into a dialog.

                Code: Select all
                filename = UI.openpanel
                f = File.new(filename,"r")
                text = f.readlines.join.gsub!(/\n/, '<KghBr31sD>')

                ndlg = UI::WebDialog.new("Ruby Web Console", true, "WebCon123", 600, 400, 100, 100, true)
                ndlg.set_html ("<html><head></head><body><textarea style='width:100%;height:100%' name='mybox' id='mybox'></textarea></body></html>")
                ndlg.show {
                  ndlg.execute_script("var text = '#{text}';var asddsa = text.replace(/<KghBr31sD>/g,String.fromCharCode(13));document.getElementById('mybox').value = asddsa")
                }


                I think I saw the method (i.e. using a gibberish tag) discussed recently in the developers forum. I'll give that a try soon.

                Cheers,
                Alex
                0
                Author of "Architectural Design with SketchUp":
                http://sketchupfordesign.com/
                User avatar
                alexschreyer 
                PluginStore Author
                PluginStore Author
                 

                Re: [plugin] Ruby Code Editor as an extended WebConsole

                Postby chrisglasier » Sat Feb 06, 2010 2:41 am

                alexschreyer wrote:
                @chrisglasier: ... It can very well work with my editor.


                It is not your editor it belongs to Jim; what you did, as I did, was to dress it up. But I don't want to focus on individual efforts but more on why the cognoscenti allow software companies to fob us off with metaphors for paperwork rather than providing digital machines.

                Take for example your original cheat sheets and my/Jim's Sketchup API digital device which provided an opportunity to link up many other devices like the console. The style is not an issue and you are more adept at implementing the links than an amateur and reluctant coder like me; the code is freely available here.

                I am very disappointed that you ignored this opportunity to exploit a way to link up data (that belongs to objects that have names) and digital devices (that can automate common tasks).
                0
                With JSON machines we can analyse what is to be achieved so that IT can help with automation to achieve it.
                User avatar
                chrisglasier 
                PluginStore Author
                PluginStore Author
                 

                Re: [plugin] Ruby Code Editor as an extended WebConsole

                Postby alexschreyer » Sat Feb 06, 2010 4:38 am

                @chrisglasier: I see now where you are coming from. My idea with my revision of Jim's Web Console was to make it more functional and spruce up the visuals but keep it easy enough for the beginning coder. I'll look again at your approach with the namesets but it seemed to me at the time to complicate things. I guess I just don't fully understand it yet.

                I am all for collaboration and combining efforts, though.

                Cheers,
                Alex
                0
                Author of "Architectural Design with SketchUp":
                http://sketchupfordesign.com/
                User avatar
                alexschreyer 
                PluginStore Author
                PluginStore Author
                 

                Re: buttons

                Postby Dan Rathbun » Tue Feb 09, 2010 2:03 pm

                Just a note on personal preference.

                If you use the META tag I gave you previously, the buttons (New, Open, Save, Quit) take on the look of the nice XP style buttons (rounded corners & which hilite on hover, etc.) They look just as they do in native dialogs.

                The jQuery buttons you have used take up more space (especilally height-wise) and have the look of the old MS Frontpage styling, which I have always hated.

                I prefer the native XP look.
                0
                  I'm not here much anymore. But a PM will fire email notifications.
                  User avatar
                  Dan Rathbun 
                  PluginStore Author
                  PluginStore Author
                   

                  Re: [plugin] Ruby Code Editor as an extended WebConsole

                  Postby alexschreyer » Tue Feb 09, 2010 3:34 pm

                  @Dan: You are right, going with the OS styling also makes sense to keep elements looking "native" on Win and Mac.

                  I wanted to go with the jQuery UI framework, though, so that a) the dialog looks exactly the same on Win and Mac and b) later I could offer different styling to users, so that they can pick their preference from a dropdown. The UI system has various nice templates:

                  http://jqueryui.com/themeroller/

                  One question: I have to save some preferences (like the UI selection) locally. Can I reliably use cookies or should I go with an ini file?

                  Cheers,
                  Alex
                  0
                  Author of "Architectural Design with SketchUp":
                  http://sketchupfordesign.com/
                  User avatar
                  alexschreyer 
                  PluginStore Author
                  PluginStore Author
                   

                  Re: [plugin] Ruby Code Editor as an extended WebConsole

                  Postby thomthom » Tue Feb 09, 2010 3:41 pm

                  Cookies can be purged by the user or utilities that clean the browser data. Safest is to store it separately.
                  0
                  Thomas Thomassen — SketchUp Monkey & Coding addict
                  List of my plugins and link to the CookieWare fund
                  User avatar
                  thomthom 
                  PluginStore Author
                  PluginStore Author
                   

                  Re: WebConsole Preferences

                  Postby Dan Rathbun » Wed Feb 10, 2010 12:46 am

                  thomthom wrote:Cookies can be purged by the user or utilities that clean the browser data. Safest is to store it separately.

                  Agreed.

                  You can use Sketchup.write_default and Sketchup.read_default to save settings in the Registry (Win32) or plist files (Mac) but they have a few disadvantages.

                  Once you create a key, you cannot remove it, so they can become cluttered with old setting keys that are not used anymore.

                  And they can be only 1 level of heirarchy, even though the Windows Registry supports any numbers of levels. (It's a tree structered database.) Perhaps this is a limitation of the Mac plists and Google is enforcing it on both platforms for 'sameness'?

                  Also.. XP Home has a Registry limit size (I'm constantly on the edge of it and often get the Registry Limit reached Warnings. If I'd known about it I would have paid the extra and bought XP Pro.)

                  Anyhow.. an ini (or any settings file,) would give you complete freedom.
                  It doesn't need to be an ini format. It can be simply a ruby script that decalres a Settings Hash wrapped in your plugin namespace. Did you know that Module and Class definitions can be split up into multiple files? They can. The main file can be the functional part of the class definition, and the other can be just a Hash declaration inside the same class namespace, that gets loaded by the first (if it exists,) and gets RE-written by the first file, when changes to the settings are made.
                  0
                    I'm not here much anymore. But a PM will fire email notifications.
                    User avatar
                    Dan Rathbun 
                    PluginStore Author
                    PluginStore Author
                     

                    Re: WebConsole Preferences

                    Postby thomthom » Wed Feb 10, 2010 8:31 am

                    Dan Rathbun wrote:Also.. XP Home has a Registry limit size (I'm constantly on the edge of it and often get the Registry Limit reached Warnings. If I'd known about it I would have paid the extra and bought XP Pro.)

                    Never knew that.
                    ...how much stuff you got installed? I've installed lots of random stuff on my old xp box through up the years - never had that warning.
                    0
                    Thomas Thomassen — SketchUp Monkey & Coding addict
                    List of my plugins and link to the CookieWare fund
                    User avatar
                    thomthom 
                    PluginStore Author
                    PluginStore Author
                     

                    Re: Registry Limit

                    Postby Dan Rathbun » Wed Feb 10, 2010 11:41 pm

                    thomthom wrote:
                    Dan Rathbun wrote:Also.. XP Home has a Registry limit size (I'm constantly on the edge of it and often get the Registry Limit reached Warnings. If I'd known about it I would have paid the extra and bought XP Pro.)

                    Never knew that.
                    ...how much stuff you got installed? I've installed lots of random stuff on my old xp box through up the years - never had that warning.

                    TOO much stuff! OpenOffice Suite, AutoCAD, Epson Scanner Software, Windows SDK, MS VisualStudio (w/ VB, C#, C++, SQL Server), Debugging Tools for Windows, Windows Support Tools, PowerToys for Windows XP, MS HTML Help Workshop, PCB123, AdobeReader, Paint.NET, NotePad++, SciTE, FamilyOrigins (Genealogy dBase), Google Sketchup 7.x, Google Earth. ..etc...
                    (And at one time 2 full versions of MS Flight Simulator; which I uninstalled.)

                    I believe I didn't get the errors until after I installed AutoCAD. I can't find the exact error message at a MS search, but did find an article dated 2007 that says the RSL (Registry Size Limit) "no longer applies" to Windows XP or Windows Server 2003. But I know I have got the error popup after that.

                    @Alex: Thinking more about this. You don't need need to worry at all regarding this issue. The RSL applies only (if it even does anymore,) to the System Hive of the Registry. Sketchup settings are saved in the User Hive, which does not have (or never had) any size limit.
                    0
                      I'm not here much anymore. But a PM will fire email notifications.
                      User avatar
                      Dan Rathbun 
                      PluginStore Author
                      PluginStore Author
                       

                      Re: WebConsole Preferences

                      Postby Dan Rathbun » Wed Feb 10, 2010 11:50 pm

                      Dan Rathbun wrote:Anyhow.. an ini (or any settings file,) would give you complete freedom.
                      It doesn't need to be an ini format. It can be simply a ruby script that decalres a Settings Hash wrapped in your plugin namespace. ... that gets loaded by the first (if it exists,) and gets RE-written by the first file, when changes to the settings are made.

                      If Js is more comfy for you, the same technique can be used but in Js. A ruby method can write out a Js script that is a JS object holding settings, or an Array of settings, or global varibales, whatever.
                      The file just gets loaded with the webpage.. no complex parsing required.
                      If the user makes settings changes.. you send them to a ruby callback that overwrites the settings .js file.

                      Also if you wish to change CSS dynamically you'll need to assign ID attributes to the stylesheets (whether inline or loaded via LINK tag.)
                      0
                        I'm not here much anymore. But a PM will fire email notifications.
                        User avatar
                        Dan Rathbun 
                        PluginStore Author
                        PluginStore Author
                         

                        Re: [plugin] Ruby Code Editor as an extended WebConsole

                        Postby alexschreyer » Thu Feb 11, 2010 5:26 am

                        Thanks for the recommendations, guys. I actually went with the easiest version (cookies) for now since I was able to implement this without hassle. I'll look at file storage later.

                        Didn't know that the registry could actually become too large. I never ran into this problem. And I have several Autodesk products installed (those are huuuge - though mostly by filesize! When will ADSK finally cut down on bloating their own software).

                        Cheers,
                        Alex
                        0
                        Author of "Architectural Design with SketchUp":
                        http://sketchupfordesign.com/
                        User avatar
                        alexschreyer 
                        PluginStore Author
                        PluginStore Author
                         

                        Re: [plugin] Ruby Code Editor as an extended WebConsole

                        Postby driven » Sat Feb 13, 2010 9:16 pm

                        Hi,

                        a possibly naive question from one your target end users,

                        I'm teaching myself ruby on a mac

                        I have a very Ruby for SU text book that is in PDF format on my hard-drive, I want to access it through the reference menu on your console, (which does throw up some code errors, but still mostly works)

                        Is it possible, or could I put it on my website and read it from there (less preferable as the books not published yet)?

                        john
                        0
                        learn from the mistakes of others, you may not live long enough to make them all yourself...

                        driven 
                        PluginStore Author
                        PluginStore Author
                         

                        SketchUcation One-Liner Adverts

                        by Ad Machine » 5 minutes ago



                        Ad Machine 
                        Robot
                         

                        Next


                         

                        Return to Plugins

                        Who is online

                        Users browsing this forum: No registered users and 19 guests

                        Visit our sponsors: