Ruby off the rails

Ruby

Ruby Problem Overview


Sometimes it feels that my company is the only company in the world using Ruby but not Ruby on Rails, to the point that Rails has almost become synonymous with Ruby.

I'm sure this isn't really true, but it'd be fun to hear some stories about non-Rails Ruby usage out there.

Ruby Solutions


Solution 1 - Ruby

One of the huge benefits of Ruby is the ability to create DSLs very easily. Ruby allows you to create "business rules" in a natural language way that is usually easy enough for a business analyst to use. Many Ruby apps outside of web development exist for this purpose.

I highly recommend Googling "ruby dsl" for some excellent reading, but I would like to leave you with one post in particular. Russ Olsen wrote a two part blog post on DSLs. I saw him give a presentation on DSLs and it was very good. I highly recommend reading these posts.

I also found this excellent presentation on Ruby DSLs by Obie Fernandez. Highly recommended reading!

Solution 2 - Ruby

I use Ruby extensively in my work, and none of it is Rails (or even web) based.

My domain is usually client-side Windows applications (wxRuby GUI) and scripts, automating Excel, Internet Explorer, SQL Server queries and report generation (win32ole COM automation). I also use the sqlite, pdf-writer, and gruff libraries for various data munging and graph generation tasks.

Rails' success has been great for Ruby, but I agree that Rails has received so much attention that Ruby's value beyond the web is often overlooked.

Solution 3 - Ruby

We are mainly a C++ shop, but we've found several areas where Ruby has proven quite useful. Here are a few:

  • Code Generation - Built several DSLs to generate C++/Java/C# code from single input files
  • Build Support
  • scripts to generate Makefiles for unix from Visual Studio Project Files
  • scripts for building projects and formatting the output for Cruise Control
  • scripts for running our unit tests and formatting the output for Cruise Control
  • scripts for manipulating Visual Studio projects and solutions from the command line
  • Integration Tests - We can crank out tests much quicker and cleaner using Ruby than C++
  • QA's entire testing suite is written in Ruby

Ruby is basically my go to tool for where it makes sense. And it makes sense in a lot of places.

Solution 4 - Ruby

Google Sketchup uses Ruby as an embedded scripting language. You can use it to perform all sorts of 3d modeling and import/export tasks. The scripting works with the free version and there's even decent documentation.

Solution 5 - Ruby

Ruby with a homebrew extension written in C++ does all the heavy pixel pushing for my photography processing. I was using Python+numpy but when doing artsy stuff, Ruby is just more fun. Also the relative lack of, or lesser maturity of, good image processing libraries makes me feel less like i'm reinventing wheels. I am clueless about Rails, other than i've heard of it, have a fuzzy idea what it is, and actually have a book on it (unopened)

Solution 6 - Ruby

We use Watir (Ruby library) to test our .net web application.

Solution 7 - Ruby

Check out Shoes, a simple API for building GUIs in Ruby aimed at novice programmers.

Solution 8 - Ruby

Or you could use Ruby to make music ala Giles Bowkett's Archaeopteryx. This presentation by Giles about Archaeopteryx is one of the best presentations ever. I highly recommend it.

Solution 9 - Ruby

RubyCocoa and MacRuby. Possible to make full Cocoa-based GUI apps without Rails. And then you get to use Interface Builder, too.

Solution 10 - Ruby

I worked on a museum project last year that used a lot of Ruby. (http://http://ourspace.tepapa.com/home)

The part that I spent most of my time on was an interactive floor map. The Map on the floor has sensors so when people walk on it lights are triggered and displays in the wall show images or videos and audio tracks are played.

All the control code for this part of the exhibit is ruby. I wrote C interfaces with ruby wrappers to communicate with the floor sensors and the lighting controllers. The system queries a MYSQL database for the media files to be displayed and then tells computers in the walls to play the media via UDP.

It's the most reliable part of the entire exhibit.

Ruby was used for the other major part of the exhibit, the Wall though I didn't have much to do with that. Most of the graphics were prototyped in ruby using interfaces to OpenGL, a bit of Cocoa and a physics library before being ported to pure Obj-C.

Solution 11 - Ruby

Puppet and Chef: DevOps

I didn't see a mention of Puppet or Chef in the 30 answers that preceded my arrival. Ruby appears to dominate current work in cloud automation and is the base, extension, and templating language of these two big players. They are used primarily to distribute system and application configuration information for server arrays and for general IT workstation management.

The DevOps field is quite Ruby-aware. Today, Perl has a competitor. While a really simple script may often still be written directly for sh(1), a complex task now might be done in Ruby rather than Perl.

Solution 12 - Ruby

The only site I've done with Ruby at work is using Rails, but I'd like to try Merb.

Other than that I do a lot of little utility programs in Ruby - for instance an app that reads RSS feeds and imports new posts into a dabase.

It's fun, so I also write some dumb stuff just because it's so quick. Yesterday I wrote an app to play the Monty Hall problem 100,000 times to help a friend convince her professor that switching is the correct strategy.

Solution 13 - Ruby

I almost take insult that ruby is a rails thing. It is like back when CGI was the latest trend and everyone figured that if you knew perl you must be doing it only because you programmed CGI apps. Ruby is just a scripting language for me, although not as mature as python so I somewhat regret having to jump through some of its hoops and recent changes, I still like it and use it. Although I work in a java shop and therefore groovy is the ideal choice for a scripting language, I still use ruby at home and for throw away scripts that aren't needed to be shared at work.

I was considering getting into RoR from all the buzz and how quick/simple it is, but after looking over rails I didn't see anything at all that was amazing or even the least bit innovative or rapidly fast about its development compared to any other framework. The only benefit I saw was that I could code in ruby, which would be nice, but initial setup, server maintenance and scaling is more difficult, thus re-offsetting the pleasure of coding in ruby.

Solution 14 - Ruby

I created a presentation -- coincidentally named Off The Rails -- to discuss Rack-based web applications:

https://github.com/alexch/Off-The-Rails

The git repo includes slides in Markdown format and sample code (in the form of running applications and middleware). Here's the abstract:

> Ruby on Rails is the most popular web application framework for Ruby. But it's not the only one! If you think Rails is too big, or too opinionated, or too anything, you might be happy to learn about the new generation of so-called microframeworks built on Rack. And since Rails 3 is itself a Rack app, you don't have to give up Rails to get the benefit of Sinatra routes or Grape APIs.

And here are some references:

Hope you find it useful!

Solution 15 - Ruby

I'm mostly a Web developer, and I learned Ruby to use Rails, but I like the language so much that I started developing a desktop Swing application in Ruby, using JRuby and Monkeybars. I'm competent in Java, but don't much like using it, and the Swing API is horrible, so putting Ruby on top has been a big win.

Solution 16 - Ruby

We mainly use rails, but we have plenty of other non-rails ruby things - for example a standalone authentication daemon thing for centralized authentication of users, and an 'image processing server' which runs arbitrary numbers of ruby processes to process images in parallel.

Oh, and don't forget good old Rake :-)

Solution 17 - Ruby

Ruby is also used for Desktop application. Especially the use of JRuby to develop Swing desktop application.

Solution 18 - Ruby

I've used Ruby at work for

  • A data extractor, generating csv files from binary output.
  • A .ini file generator, turning a simple syntax into a repetitive .ini format.
  • A simple TCP/IP server, acting as stand-in for the customer's system during testing.

Solution 19 - Ruby

We use Ruby to implement our test automation software. This includes test framework and driver code for Selenium RC, WATIR and AutoIT.

Ruby is powerful enough to create comprehensive applications that can interface with Test tools like Selenium or WATIR, while at the same time reading from data files, interacting with a remote Windows UI and performing near transparent network communication. All while running on Windows or Linux.

The uncluttered syntax makes it ideal for new and inexperienced programmers to read. While its totally OO nature makes it easy for these same programmers to apply good (recently learned) OO techniques, from the start.

The flexible nature of Ruby's syntax also makes the use and creation of DSLs much easier. This allows less-technical people to get invovled, read and possibly create there own tests.

Solution 20 - Ruby

I have used Ruby for code generation of C# and T-SQL stored procedures in a project with unstable requirements. The data model was encoded in a YAML file and .erb templates were used for the classes and stored procedures. It also allowed for a much more DRY solution than would have been possible with straight C# as repetitve code could be factored out into a single method in the code generator.

Solution 21 - Ruby

Where I work, we use Ruby to do a number of different one-off type batch jobs. One example of that is a job that interacts with Amazon's S3 service. At the time, the Ruby S3 library was probably the easiest one out there for us to get up and running in a short amount of time.

Solution 22 - Ruby

I wrote an order processing expert system (see DSL answer as well), converted 100k lines of customer specific perl into about 10k lines of ruby handling dozens of customers. No web components at all, no Rails.

Solution 23 - Ruby

I am a webdriver user. ruby is used by webdriver for automating the build process thanks to rake. see http://code.google.com/p/webdriver/ for details

Solution 24 - Ruby

Heh, great question.

I used Ruby to convert Excel spreadsheet airport facility data to sqlite3 for the android phone platform while making an app for pilots.

Solution 25 - Ruby

I use Ruby with Sinatra which is much simpler than Rails. I did use Rails but just found that it has turned into a bit of a monster, although Rails is still amazing compared to web frameworks available for Java.

The main feature of Ruby that I love however is "eval" and "method_missing", which Rails actually uses for example in ActiveRecord so that you can use the amazing "find_by-field-name-" queries.

Solution 26 - Ruby

I used Ruby for a lot of back-end code simply because I was the only person who was tasked to do it and needed a nice clean language that allowed me to be very productive and write easy to maintain code. I find Ruby allows me to do that easier than Perl and Python. Other people's mileage might vary on that but it works well for me.

Besides that, I like how Sequel and Nokogiri work. I also used ActiveRecord for a while separately from Rails.

Solution 27 - Ruby

We use some Ruby for file manipulation but have not been able to incorporate rails yet.

Solution 28 - Ruby

I've used Ruby a lot professionally for quick scripts for things like shuffling files around. I'm the same way in that I was using Ruby first before touching Rails at all.

Solution 29 - Ruby

In Boulder there was an excellent group of Ruby users who met monthly. This point was made - that Ruby does have an existence beside its use in Rails. Plain Ruby users do exist, are begging for attention, have neat things to show, and can find each other at user group meetings.

They also had better pizza than the Python group, who met also the same day of the month. Can only pick one...

Solution 30 - Ruby

While we do have several Rails apps at work, we also use Ruby for some fairly intensive non-web stuff.

We've got an SMS delivery daemon, which pulls messages from a queue and then delivers them, and credit card processing daemon which other apps can call out to, which makes sure there's a central audit trail.

Solution 31 - Ruby

I myself use both ruby on its own and combined with the framework rails. I made a ruby application which daily pulls all the highscores from a website and puts it in a mysql database. It is sofar the first and only application i made in ruby on it's own i made

Solution 32 - Ruby

I use Rails a lot at work, but for smaller applications or simple REST-based services I tend to use Sinatra. I'm also writing text-adventure game in Ruby for fun.

Solution 33 - Ruby

At work I do all my scripting for Windows with Ruby. Thanks to that I can say bye bye to Dos script

Solution 34 - Ruby

Other than Rails I've been using ruby extensively in the following small/medium projects:

  1. In large hierarchical text file parsing (to some extent similar to YAML structure)
  2. Specialized small range web-spiders.
  3. Three Sinatra apps.

Solution 35 - Ruby

Ruby is hugely powerfull, and Rails was a good proof-of-concept of it's power applied to web-services.

Nonetheless, Ruby continues (and will continue) to become more widespread in different contexts, like system-administration, scripting, automation, ...

The thing was that in some point along the way, Rails got so much fame that "shadowed" Ruby and make it look like that it was Ruby following Rails. But as the number of answers in this post prove it, Ruby is much more than Rails.

I too feel an "itch" when I'm searching about Ruby, and have to constantly deviate Rails info that gets in the way... but hey, Rails also contributed a lot to the Ruby growth and marketing :)

Solution 36 - Ruby

I haven't done any non-Rails Ruby web dev, but all of my Project Euler solutions are in Ruby, as well as some other small projects, like my IRC bot.

Solution 37 - Ruby

Does part of Rails count? We've used Ruby for an ETL application and plugged in ActiveRecord just for its model validations.

Solution 38 - Ruby

I have inherited a legacy application that supports mobile for some well-known dating sites (which I won't name due to confidentiality).

The legacy application uses Ruby but not Rails. The original application uses a predecessor to Rails, called "Merb" (https://en.wikipedia.org/wiki/Merb)

Part of the application has been ported to use different technology to separate the technology into a backend and frontend layer. The backend layer uses pure ruby and the front-end uses ReactJS with some NodeJS integration.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJesperEView Question on Stackoverflow
Solution 1 - RubySixty4BitView Answer on Stackoverflow
Solution 2 - RubyDavid MulletView Answer on Stackoverflow
Solution 3 - RubyAaron HinniView Answer on Stackoverflow
Solution 4 - RubyhyperlogicView Answer on Stackoverflow
Solution 5 - RubyDarenWView Answer on Stackoverflow
Solution 6 - RubyŽeljko FilipinView Answer on Stackoverflow
Solution 7 - RubyParappaView Answer on Stackoverflow
Solution 8 - RubySixty4BitView Answer on Stackoverflow
Solution 9 - RubyMatthew SchinckelView Answer on Stackoverflow
Solution 10 - RubyHenryView Answer on Stackoverflow
Solution 11 - RubyDigitalRossView Answer on Stackoverflow
Solution 12 - RubypalmseyView Answer on Stackoverflow
Solution 13 - RubyZombiesView Answer on Stackoverflow
Solution 14 - RubyAlexChaffeeView Answer on Stackoverflow
Solution 15 - RubyMarnen Laibow-KoserView Answer on Stackoverflow
Solution 16 - RubyOrion EdwardsView Answer on Stackoverflow
Solution 17 - Rubyuser23117View Answer on Stackoverflow
Solution 18 - RubyAShellyView Answer on Stackoverflow
Solution 19 - RubyPeterView Answer on Stackoverflow
Solution 20 - RubydomgblackwellView Answer on Stackoverflow
Solution 21 - RubymmacaulayView Answer on Stackoverflow
Solution 22 - RubymmaibaumView Answer on Stackoverflow
Solution 23 - RubylucView Answer on Stackoverflow
Solution 24 - RubyDigitalRossView Answer on Stackoverflow
Solution 25 - Rubyyazz.comView Answer on Stackoverflow
Solution 26 - Rubythe Tin ManView Answer on Stackoverflow
Solution 27 - RubyFortunateDukeView Answer on Stackoverflow
Solution 28 - RubymadlepView Answer on Stackoverflow
Solution 29 - RubyDarenWView Answer on Stackoverflow
Solution 30 - RubyJon WoodView Answer on Stackoverflow
Solution 31 - RubyRikkertView Answer on Stackoverflow
Solution 32 - RubyLukas StejskalView Answer on Stackoverflow
Solution 33 - RubyYoann Le ToucheView Answer on Stackoverflow
Solution 34 - RubyintellidiotView Answer on Stackoverflow
Solution 35 - RubyzipizapView Answer on Stackoverflow
Solution 36 - RubyLucas OmanView Answer on Stackoverflow
Solution 37 - RubyAaronView Answer on Stackoverflow
Solution 38 - RubyKmeixnerView Answer on Stackoverflow