For 2023 - we are now fully retired from IT training.
We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.
Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!
I am also active in many other area and still look after a lot of web sites - you can find an index ((here))
Variable types in Ruby
* Variable with names starting with a lower case letter are local variables
* Names starting with a capital letter are constants - you can set them once each time you run a program and then they are fixed
* Names starting with a single @ character are object variables - in other words, you'll usually create one of each of the @ variables in an object for each object of the class you create. (I say "usually" as Ruby is dynamic and you can add variable to an object long after you have run the constructor if you really want to!)
* Names starting with two @ characters are class variables - so you create just one for the whole class which is shared between all instances.
* Names starting with a $ are global variables which you can refer to anywhere in your code.
You do NOT declare whether a variable is an int, a float or a scaly_anteater in Ruby, as all variables contain objects - and indeed a variable may contain a string at one point in your program, a cube at a later point and can finish up as a puff_of_smoke.
Here's an example piece of code.
@diam = diameter
@colour = colour
@@ndisc += 1
$ticker += 1
tocker = 17
This is a constructor for an object for which who object variables are created - @colour and @diam. There is also a class variable called @@ndisc which is incremented every time this constructor is run, And $ticker is a global variable - it can be reference anywhere else in the code. The bare variables diameter, colour and tocker are local - and the tocker variable appears to be pointless (Ruby won't complain) as it is set then wasted as the method exits.
See a complete example that uses this code here (written 2008-03-21, updated 2008-03-22)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesR119 - Ruby Miscellany 
Good Programming practise - where to initialise variables - (2007-05-09) 
Some Ruby lesser used functions - (2008-07-26) 
Ruby mixins, modules, require and include - (2008-11-16) 
MySQL database from Ruby - an example - (2008-11-16) 
Rake - a build system using code written in Ruby - (2011-02-03) 
How many days to Christmas? - (2011-09-09) 
Loading Ruby classes - where does Ruby look? - (2012-02-24) 
Load path, load and require in Ruby, and a change from 1.8 to 1.9 - (2012-06-24) 
Ruby Documentation through rdoc - (2012-07-07)R110 - Ruby - Special Variables and Pseudo-Variables 
Ruby - Totally Topical - (2006-12-16) 
Some Ruby programming examples from our course - (2008-03-21) 
Ruby to access web services - (2008-11-16) 
Variable scope - what is it, and how does it Ruby? - (2009-07-18) 
Constants in Ruby - (2010-02-01) 
Object Oriented Ruby - new examples - (2010-02-03) 
Ruby - a teaching example showing many of the language features in short but useful program - (2012-06-09) 
Reading and parsing a JSON object in Ruby - (2015-06-01) 
One line scripts - Awk, Perl and Ruby - (2016-05-20)
Some other Articles
All Change, Portsmouth HarbourDynamic Memory Allocation in C - calloc, reallocString interpretation in RubyVariable types in RubyWell House Consultants / Manor - StaffUsing Structs and Unions together effectively in CBusinesses in West Wiltshire - networkingRuby, C, Java and more - getting out of loopsWhat is an lvalue? (Perl, C)
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page
This is a page archived from The Horse's Mouth at
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).