Ruby: Most Popular Articles
Problem: You encounter an error reading NameError: uninitialized constant Something or NameError: uninitialized constant Object::Something (with various class names in place of Something).
Use command-line arguments to pass parameters to your Ruby scripts from the command line.
This article explains and teaches how to use a associative arrays (hashes) as a way to store multiple variables in one data structure.
Learn how to use the command line interface on Windows, Linux and OS X to run rb files and use the interactive Ruby program. Page 2.
This article explains and teaches how to use a arrays as a way to store multiple variables in one data structure.
String manipulation using the split method in Ruby. Split strings into a list of substrings.
Use comments to annotate your Ruby code.
Using environment variables in Ruby.
Loops, including while and include loops, are one of the most commonly used constructs in computer programs. Page 2.
Unless user input is a single word or number, that input will need to be split, or turned into a list of strings or numbers.
The following is a list of articles that will show you how to write, style and deploy a URL shortener (like TinyURL) application in Ruby on Rails.
Ruby comes equipped with a powerful and flexible tool to parse command-line options, OptionParser. The class is an alternative to GetoptLong for analyzing command line options.
Using and manipulating strings and substrings in Ruby. Page 4.
How to install Ruby on the Linux operating system.
The case statement is a control structure that is usually quite limited in other programming langauges. However, it's quite powerful and flexible in Ruby.
How to use the command line interface on Windows, Linux and OS X to run Ruby scripts and use the interactive Ruby program.
What type of language is the Ruby programming language?
Problem: You encounter an error reading NameError: undefined local variable or method `a' for #
class="no-js" itemscope itemtype="http://schema.org/Article" > itemprop="description" >Splitting a string
URL shortening is a useful feature for any Rails application. Making it easy for people to share links to your content is always a good thing.
Sometimes the old adage rings true: the best things in life are free. If you've wanted to learn a little Ruby, but haven't been able to fit a programming course into your budget, don't worry. There are a number of places on the Web to begin your learning, without sacrificing money or quality.
In the previous article in this series, we discussed the basics of the Dir class. Particularly useful was the Dir.for each method for iterating over all files in a directory. However, this only goes so far. What if you want to iterate over only some files (for example, just XML files) in a directory?
How to install the Ruby interpreter on Windows, Linux and OS X.
The 'require' method is the reusable code mechanism in Ruby. It allows you to import other source files into your programs.
Aliasing is a powerful Ruby feature that allows more than one method to be referred to by multiple names. This can be used to give a programmer more expressive options or to create copies of a method, allowing you to change the behavior of a class.
There are two basic things you can do with an object: call a method on it and access an attribute. Ruby doesn't make a distinction between these things, but it does give you some tools to make some methods act like attributes.
Using OptionParser to parse command line options is a preferable alternative to GetoptLong or looking through ARGV manually. But how do you use it?
It's often necessary to make a copy of a value in Ruby. While this may seem simple, and it is for simple objects, as soon as you have to make a copy of a data structure with multiple array or hashes on the same object, you will quickly find there are many pitfalls.
Ruby objects are instantiated using the Class.new method, and initialize using their own initialize methods.
How to use the logger library to create and write to log files in Ruby.
Ruby programs rarely exist in their own little world. And while many choose to communicate over the internet, there's still plenty of need to access plain old files.
class="no-js" itemscope itemtype="http://schema.org/Article" > itemprop="description" >The ternary (or
Iterating over arrays isn't the only trick up Ruby's sleeve. Having the ability to map arrays (and other enumerable collections) is a powerful feature.
Instance variables are some of the most common and important variables types in Ruby. They begin with the at sign (@) and allow objects to track their internal state.
How do you create hashes from tabular data? There are a few ways, but there's a way built into Ruby that fits onto a single line.
Loading images from files and displaying them om the screen is the one of the most basic things you can do in game programming. Luckily, Rubygame makes this really simple.
How to check POP3 email accounts in Ruby.
Net::SSH is a way for Ruby to interact with SSH (Secure Shell) protocol. It relies on the OpenSSL library for encryption.
The main loop is the heartbeat of any game, and is the first thing you need to learn to start making your own games.
In the past, the Ruby “One-Click Installer” was the primary choice for installing Ruby on Windows. However, the One-Click Installer fell into disrepair and was eventually abandoned. Something new was needed, and thus, RubyInstaller was born.
Installing the Ruby Version Manager (RVM) on Linux
Mutexes are a way to prevent more than one thread from accessing the same resource (variable, file, socket, etc) at the same time.
It's easy to jump into parsing and generating JSON in Ruby with the json gem. It provides an API for parsing JSON from text as well as generating JSON text from arbitrary Ruby objects. It's easily the most used JSON library in Ruby.
It's often useful in games, simulation and unit testing to generate random numbers, Ruby provides easy access to a pseudo-random number generator.
We'll use a two dimensional array to represent the 2048 game board, but how do we create a 2D array in Ruby?
In this part, we'll implement a complete working application.
The basics of using Bundler are very trivial, you can be up and running in just a few minutes.
Be notified of Twitter updates by IM, using this Ruby script. It's a pain to switch to a Web browser every you want to check your Twitter account. This script solves that by sending you an instant message (IM) using the Jabber protocol when there's something new to see on Twitter.
Why are cloud computing and Ruby on Rails a good match? Let's hear what Hampton Catlin, author of HAML and Wikipedia's head Ruby/mobile architect has to say!
Using hashes to simulate optional named parameters in methods.
What do you do when a new version of Rails comes out? Build a blog, of course. The blog is kind of the hello, world application of the web application world.
OS X has pretty easy access to a GCC development environment installed with XCode (an IDE and development
What is cloud computing? Interviews with industry experts help us define cloud computing, software as service, platform as service and more.
Can I add empty directories to Git repositories?
Quickly Run an HTTP Server with Ruby (Also, the Un Library)
Ruby on Rails 3 Tutorial: Learn Rails by Example by Michael Hartl is a hands on introduction to not only Ruby on Rails but all the related software and services many Rails developers use such as Git, Github, Heroku and RSpec. There are no long-winded discussions on theory or REST or MVC, each and every part of every chapter is a hands on exercise in building a Rails application. This book is recommended for anyone who prefers a hands on approach to learning.
The gem command is one of the most used Ruby-related commands. This article shows 25 Gem Commands and their functions.
class="no-js" itemscope itemtype="http://schema.org/Article" > itemprop="description" >Checkboxes and
The basics of strings, string interpolation, single and double quotes, escape sequences and alternate string literal syntaxes. Page 2.
How do Ruby and Python compare in terms of features, form and function?
Directions of how to install the Tk GUI and its Ruby bindings on Windows, Linux and Mac OS X.
What features do Ruby and the Java programming language share? How are they alike and how are they different?
Now that you can write controller logic and views and Haml, you can start putting together some more complex application. There's one very annoying thing though: Sinatra does not reload its code whenever you make a change. If you make a change, you have to stop and restart the server. This is just an extra step and generally an annoyance. This where shotgun comes in.
Now that you have Linux up and running, and you have Ruby, time to add the two most essential parts of any Rubyist's toolbox: version control and a good editor. Page 3.
Before we get too invested in our blog, we need to set up some authentication. We'll be using the popular and capable Devise gem to handle authentication.
If you're going to program in the Ruby language, there are some basic features you absolutely must know. Here are the Top 5.
It's not a very common thing in Ruby. You have more sophisticated string tools (such as split or scan), but there are times when you'd want to iterate over the characters in a string. Unicode complicates this matter, but Ruby makes it simple.
class="no-js" itemscope itemtype="http://schema.org/Article" > itemprop="description" >Block parameters
A comparison of Ruby to other programming languages, including Perl, Java, Python and PHP.
class="no-js" itemscope itemtype="http://schema.org/Article" > itemprop="description" >The speed of light
If you're coming from a compiled language, it's easy to think that method calls are like native function calls. This is simply not the case in Ruby.
One of the most common tasks when dealing with arrays is to sort them. Luckily, Ruby makes this simple and flexible.
There’s a lot of talk about Rack , but unless you’re a framework author yourself, you rarely see it. So what is Rack? And why, as an application developer, should you care about it?
How to install gems from git repositories.
Global variables are not often used in Ruby, however, you should at least understand their usage should you ever encounter them.
The scaffold generator gave us something rather spartan, let's spruce this up by adapting a Wordpress theme to work with our shiny new blog.
Learn to search the Ruby Gems repository to find gems to add and install to your library.
You probably know about the 'require' method (yes, it is a method, it's not a keyword), but what about the 'load' method? What's so different about it?
How to use blocks in Ruby.
New to Ruby? Or even to programming? Find out what Ruby really is (and isn't) and why you should (and shouldn't) use it.
A crash course on what CSV is, what it is used for and how it is parsed. A method for parsing CSV files using only Ruby's built-in string methods is presented and discussed.
What does a + b mean? That all depends on what 'a' is. Ruby allows you to define a number of arithmetic operators and they're called on the left-hand side of any such expression.
How to get started in Sinatra, including how to use actions, parameters, ERB and views.
Sinatra is a web framework. Simply put, it's a library that allows you to write web applications with a minimum of red tape.
Until Ruby 2.0, Ruby has not had true keyword arguments. You could simulate them using a hash, but as of Ruby 2.0 there's no longer any need to do that.
Base64 is a way to represent any data as ASCII data. Ruby provides a few handy functions to encode and decode Base64.
Running programs with Net::SSH is simple enough. The Session object gives you two convenient methods with which to accomplish this task.
There's a really quick way to get the result of the last expression evaluated in IRB.
How to install the Ruby interpreter on the Windows operating system.
Is Ruby a good first language to learn? Everyone has to start somewhere, and is Ruby an appropriate place to start if you're looking to take the plunge and learn a programming language?
Installing command line tools such a Git on Windows is often difficult. Not only do you have to find a Windows port or attempt to compile the tool yourself from C source code, you also have to deal with the Windows command line. The Windows command line is, to say the least, a little lacking. Windows users are in luck here though, the MSysGit project solves both these problems.
Text adventure games were a very popular game genre on minicomputers and microcomputers from the 1970's through the 1990's. This article series will take you through each step of making a text adventure game in Ruby.
Now that Rails 4 is out, let's see what's new.
Problem: Seemingly at random, you've encountered the error undefined method `to_sym' for nil:NilClass, or a similar error message for any method name other than to_sym.
Part one of the Ruby on Rails blog tutorial focuses on creating a Rails project and scaffolding a basic blog post data structure.
How do do various types of URL matching in Sinatra.
Thread pools are a common pattern in many programs: the need to run M tasks, but only wish to run N of them in parallel at a time.
Problem: You're trying to install a gem and you encounter an error reading no such file to load -- mkmf. This doesn't always occur, only when you're trying to install gems with native C code that must be compiled.
In the previous article, you learned what Rack is. Now, it’s time to start using Rack and serve up some pages.
While simple boolean expressions will get you pretty far, you'll soon find yourself wanting to act on more than one condition. For that you'll need boolean operators.
You don't have to use version control, but you should be. In the past, version control software has been large, clunky, required servers and really was only used when working in groups. But with Git, it's so easy that you really have no excuse, you should be using version control.
class="no-js" itemscope itemtype="http://schema.org/Article" > itemprop="description" >Buttons primarily
Much is made of the two base data structures in Ruby: the Array and the Hash. However, it's also quite easy to use two dimensional arrays in Ruby.
I've always been a Vim person. Just give me a good solid editor and I'll take it from there. But I decided to give RubyMine a good honest try, and here's what I think about it.
A review of the book Practical Ruby Projects: Ideas for the Eclectic Programmer by Topher Cyll from Apress.
Part four of the Ruby on Rails blog tutorial shows you how to create a comments table to allow users to comment on your blog posts.
Using the Twitter RubyGem, making API requests to Twitter is even easier than using the twitter method.
Exploring and knowing the Twitter API is fine, but what do you do from there? Here are 3 practical scripts to help you follow followers on Twitter, update your Twitter account via an RSS feed and to be notified of your friend's new Tweets as they come in.
Before we start coding, we take some time to look at the game of 2048.
By using the Enumerable module, you can make any of your classes act like Ruby standard collections. All you need to do is implement the 'each' method.
Serializing an object is to convert an object to a byte stream and either store that object for future loading, or sending to another program to be loaded there. There are several common ways to serialize objects in Ruby. The Marshal module is used less often than the other methods, but it's included in the standard library.
Before you can start making models, views and controllers for your web application, you need to generate a new applications. Rails projects are too complex to create by hand, you really do need an empty project to bootstrap you. It's not hard though, there's really only one command you need to know.
How to use Haml to create Sinatra views and layouts. Page 7.
Method visibility is crucial to implement proper encapsulation. Ruby provides ways to not only hide instance variables, but to hide instance methods as well.
Sometimes blindly opening files just won't cut it, sometimes you need to know more information about a file before opening it.
Bundler is a gem dependency manager for Ruby.
Among the new features in release of Ruby 1.9.1 is the Lambda operator, a shortcut used to make nameless methods. Learn how to use this feature introduced in Ruby 1.9.1.
Generating cryptographic hashes in Ruby is quite easy. Ruby provides both a built in method and gives access to OpenSSL's hashing algorithms in most installations.
Creating Ruby gems has always been a bit of a pain. When you get right down to it, it's not a hard thing to do, but it's easy to forget how if you don't do it often enough. There are quite a few gems to help you write other gems, but if you're using Rails 3, there's already a gem on your system that does this: Bundler.
The syntax of a language is the grammatical rules a program must follow in order to be understood by the interpreter or compiler.
Distributed Ruby, or DRb, is a library that allows you to communicate with remote Ruby objects and programs, using TCP/IP network protocols.
As with most flavors of Ruby, the easiest, cleanest and least painful way to install jRuby is with RVM, the Ruby Version Manager. And although jRuby is different than MRI, the official Ruby interpreter, it can be installed just as easily, arguably easier. Page 2.
Methods are very important in Ruby. You have probably used them before, but have you thought about how to really define them?
Chances are, you've spent your entire database life with relational databases. Data gets organized into columns, and stored in rows. You manipulate data with SQL (Structured Query Language) and there's really no other way to do it. There are competing SQL servers out there (MySQL, SQLite, etc), but they all more or less operate in the same way. But there's much more out there than SQL databases, especially with all the new software in the past few years.
Digraphs are extremely useful for hierarchical data visualization. However, they're not very easy to generate yourself. This is where Graphviz and the Graph gem come in.
A literal is an object that can be constructed using special syntax.
Class variables in Ruby are more or less as you'd expect form an object oriented language. However, Ruby throws you a curveball you can use to your advantage.
Exceptions are used to handle things the unexpected things that might go wrong with your Ruby code. This article addresses what Exceptions are and how they can be used.
There are a number of ways to combine arrays in Ruby.
class="no-js" itemscope itemtype="http://schema.org/Article" > itemprop="description" >Most likely, you'll
So far, we've discussed how to use Sinatra in general, how to handle and route requests, and how to build views using Haml. Before we take the plunge into using data storage with Sinatra, let's put what we've discussed so far into practice. This article explains how to use Sinatra to provide a web interface for a gem. Page 4.
An ordered collection of values, often assigned to a variable. In Ruby, the array takes the place of all ordered collections. They act as arrays, lists, stacks, queues, etc.
Underneath it all, classes are just collections of methods. Ruby implements them using Module, which also have other uses including composition and namespaces.
Since the Twitter API makes it easy to do anything you can do on the website, writing a Ruby script to automatically follow followers is very simple.
With RVM installed on your system, it's easy to have many versions of Ruby installed. And, especially if you switch between them often, it's easy to forget which Bash command prompt is using which Ruby version. You can solve this by putting your Ruby version in your Bash prompt.
How to use the ruby-progressbar gem to display progress bars on the command line.
class="no-js" itemscope itemtype="http://schema.org/Article" > itemprop="description" >Although the primary
I declared a variable in the global scope, and now I can't access it. What's going on here?
The following is a short collection of tips that are so obvious they've likely been staring you in the face for a very long time. Why haven't you been using them? You're likely stuck in a rut, doing things in a certain way without even realizing there is a slightly easier way.
Without a framework like Rails, and particularly the scaffold generator, getting up and running with any project was a pain. You'd be doing a lot of configuring and planning and typing out all the methods to create blog posts and interact with the database. Rails does all this in just a few commands, and while it's not something you'll want to deploy right away, it does give you an excellent starting point.
Threads are the primary method of concurrency and parallelism in Ruby.
Learning how to work with files is one of the first things new Ruby programmers learn. However, how to work with directories of files is something that's often skipped or only lightly touched upon. Ruby does have some powerful mechanisms for working with directories though.
How to use delegates in Ruby.
At their core, object oriented programmers are concerned with sharing code among objects that act the same. One of the primary mechanisms for this inheritance.
Ruby has a the usual and expect loops, as well as a number of loops specific to Ruby. It even has a way to define you own types of loops.
Ruby is an object oriented programming language. This means code is organized into classes, and data is manipulated via objects. Since this is so essential to Ruby, it's very easy to do.
Hashes aren't just data structures, they have a few tricks up their sleeves. And while you may never end up using any of these tricks, they really show off how flexible the Hash class is.
Some larger projects, especially Ruby on Rails, come with quite a bit of documentation. This is good, documentation is good, but the code that processes this documentation (RDoc) into HTML and ri format is not exactly speedy. On slower computers, or with larger projects, the time this takes becomes and annoyance.
Test-Driven development is a popular and powerful development methodology, and Ruby's built in MiniTest library makes this task simple.