ruby -run

Ruby is well known as a language that is easy to use from the surface but is very deep and complex underneath. That’s what we know and love about it. Its standard library has a similar design and contains many hidden gems. One of the gems I’ve learned …


This content originally appeared on DEV Community and was authored by Delon R. Newman

Ruby is well known as a language that is easy to use from the surface but is very deep and complex underneath. That's what we know and love about it. Its standard library has a similar design and contains many hidden gems. One of the gems I've learned about recently is un. It's designed to be a command line utility executed directly from ruby. This is its usage description:

ruby -run -e cp -- [OPTION] SOURCE DEST<br>
ruby -run -e ln -- [OPTION] TARGET LINK_NAME<br>
ruby -run -e mv -- [OPTION] SOURCE DEST<br>
ruby -run -e rm -- [OPTION] FILE<br>
ruby -run -e mkdir -- [OPTION] DIRS<br>
ruby -run -e rmdir -- [OPTION] DIRS<br>
ruby -run -e install -- [OPTION] SOURCE DEST<br>
ruby -run -e chmod -- [OPTION] OCTAL-MODE FILE<br>
ruby -run -e touch -- [OPTION] FILE<br>
ruby -run -e wait_writable -- [OPTION] FILE<br>
ruby -run -e mkmf -- [OPTION] EXTNAME [OPTION]<br>
ruby -run -e httpd -- [OPTION] [DocumentRoot]<br>
ruby -run -e colorize -- [FILE]<br>
ruby -run -e help [COMMAND]

This means that if you type

ruby -run -e help httpd

you'll see a help message that will describe how that command works.

Most of the commands have pretty limited utility. They seem to be portable UNIX utilities for use when Ruby is present but a UNIX environment is not. In fact, the package is described as "Utilities to replace common UNIX commands in Makefiles etc." Perhaps they're useful in embedded systems (I understand that Ruby is commonly
used for embedded systems in Japan).

The two that stand out to me are httpd and colorize. httpd is very useful. It's become my go-to utility when I need to quickly serve files over HTTP.

Just type

ruby -run -e httpd .

press "Enter" and boom you're done! You should see something like this on your screen:

[2025-01-12 13:43:26] INFO  WEBrick 1.6.1<br>
[2025-01-12 13:43:26] INFO  ruby 2.7.5 (2021-11-24) [arm64-darwin24]<br>
[2025-01-12 13:43:26] INFO  WEBrick::HTTPServer#start: pid=27808 port=8080

Now you can open localhost:8080 in your browser and see the files you've served.

colorize prints out the Ruby code of any file you give it with syntax highlighting. I've not used it in a practical setting yet. But it might be useful when looking through Ruby files in a terminal as an alternative to cat.


This content originally appeared on DEV Community and was authored by Delon R. Newman


Print Share Comment Cite Upload Translate Updates
APA

Delon R. Newman | Sciencx (2025-01-15T19:34:00+00:00) ruby -run. Retrieved from https://www.scien.cx/2025/01/15/ruby-run/

MLA
" » ruby -run." Delon R. Newman | Sciencx - Wednesday January 15, 2025, https://www.scien.cx/2025/01/15/ruby-run/
HARVARD
Delon R. Newman | Sciencx Wednesday January 15, 2025 » ruby -run., viewed ,<https://www.scien.cx/2025/01/15/ruby-run/>
VANCOUVER
Delon R. Newman | Sciencx - » ruby -run. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/01/15/ruby-run/
CHICAGO
" » ruby -run." Delon R. Newman | Sciencx - Accessed . https://www.scien.cx/2025/01/15/ruby-run/
IEEE
" » ruby -run." Delon R. Newman | Sciencx [Online]. Available: https://www.scien.cx/2025/01/15/ruby-run/. [Accessed: ]
rf:citation
» ruby -run | Delon R. Newman | Sciencx | https://www.scien.cx/2025/01/15/ruby-run/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.