Hello Ruby
Recently, I've been looking into the Ruby Programming Language and like most programmers I started by writing a "Hello World" program. Now let me say that I am not a fan of most Hello_World programs simply because I don't think they really give much information to the viewer of the code, so I thought I should share the code that I wrote.
There were a few programming language features that I thought should be included in my code.
An Object Oriented class
Quite a bit of my coding is Object Oriented and since most anything I program in the future using Ruby will be Object Oriented, this was a must.
A class that extends the functionality of the previous class
Writing my own classes is good and dandy, but very often I need to extend a base class from and included code library with additional functionality and I wanted to see what sort of coding requirements Ruby has for extending classes.
some sort of array thingy
Each programming language has various names for ways to store a collection of data: list, dictionary, hash table, array, and a few other things that I usually forget because I don't pay much attention to nomenclature. Anyway, I always end up having to program some way to deal with a list of words or numbers or something, so I made sure to include an array in my program.
Enter the Ruby
#define a class to print out some words
class PrintThing
def initialize
#we need a variable to hold the words to be printed
@words = [] #use an empty array
end
#define a function to set the @words
def set_words(words)
@words = [words]
end
#define a function to output all of the elements of the words array
def print_words()
puts @words.join( " " )
end
end
#extend the printthing class to be more advanced
class AdvancedPrintThing < PrintThing
#define a function to add an element to the words array
def add_word( word )
@words.push( word )
end
#define a function to truncate the words array
def clear()
@words = []
end
end
if __FILE__==$0
#create an instance of the PrintThing
pt = PrintThing.new
#set some words
pt.set_words( "Hello World" )
#print the words
pt.print_words()
#create an instance of the AdvancedPrintThing
apt = AdvancedPrintThing.new
#set some words
apt.set_words( 'Howdy Buddy!' )
#print the words
apt.print_words()
#clear the word list
apt.clear()
#add a bunch of single words
apt.add_word( 'How' )
apt.add_word( 'are' )
apt.add_word( 'you?' )
#print the words
apt.print_words()
end
What I learned
- Defining a class is easy and a new class should have a constructor method named "initialize" if the class needs to do something when a new instance of the class is created
- Extending a class can be done with the "<" symbol, so to code that class A extends class B is as simple as "class A < B".
- a variables scope is determined by the variable's starting character.
$ for global variables
@ for instance variable
@@ for class variables
While this can look confusing at first, I like being able to determine at a glance exactly what the scope of a variable is. - There was no need to worry about code indentation. Ahhh relief.
- Ruby does not create byte-code when an ruby program is run. sigh of disapproval
All things considered, I like the language and there is some rather impressive documentation available at http://www.ruby-doc.org/
Now quit reading, and go find yourself a programming project.
http://mislav.uniqpath.com/poignant-guide/book/chapter-1.html