Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
Ruby - examples of regular expressions, inheritance and polymorphism

With delegates on public Well House Consultants courses staying in our on-site accommodation, there's time for them to learn a lot more about each other's applications and get a far wider view of the uses of the subject they're with us to learn. There's time for the delegate who wants to extend practicals to tryout some more code, and for delegates who would like the tutor to show them further examples.

On Friday, I was asked for further examples to illustrate polymorphism, and regular expressions in ruby, and to do so in an example which related to some practical use. Also to show a test harness / test cases in use.

The first examples - (see source) was a class for handling email addresses - with a test harness supplied too. The email addresses are initially split down into a user name and a domain, and then the domain is split down further into each domain level - so graham.ellis@sheepbingo.co.uk is split down to graham.ellis and sheepbingo.co.uk - which is then split down to sheepbingo, co and uk. This is a good reminder to not get involved with Matcho matching where the programmer tries to solve the whole problem with a single command / regular expresion!

I also wrote a server log analysis application - the regular expression was more complex here - and used four different classes for each server access; that's because I want to treat a success as a slightly different record to a failure, and split the failures between whether the failure was due to a server error or an error in the request. Of course, I didn't write four completely different classes - I simply wrote a single base class and then provided other classes that inherited from it, with only tiny bits of code in the subclasses which indicate the changes. See [here]. An extended version of that application - [here] - goes on to show how these classes of server access object are used and sorted to produce a list of the pages on our web site that were accessed in the last 24 hours, how many times, and from where.

P.S. These latter examples are interesting in that they also use a wholesale factory method - a static or class method which returns a whole array of new objects. There's more about factory methods [here].
(written 2010-10-02, updated 2013-01-01)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
R108 - Ruby - More Classes and Objects
  [3782] Standard methods available on all objects in Ruby - (2012-06-23)
  [3781] Private, Protected, Public in Ruby. What about interfaces and abstract classes in Ruby? - (2012-06-23)
  [3760] Why you should use objects even for short data manipulation programs in Ruby - (2012-06-10)
  [3260] Ruby - a training example that puts many language elements together to demonstrate the whole - (2011-04-23)
  [3158] Ruby training - some fresh examples for string handling applications - (2011-02-05)
  [3154] Changing a class later on - Ruby - (2011-02-02)
  [3142] Private and Public - and things between - (2011-01-22)
  [2977] What is a factory method and why use one? - Example in Ruby - (2010-09-30)
  [2717] The Multiple Inheritance Conundrum, interfaces and mixins - (2010-04-11)
  [2623] Object Oriented Ruby - new examples - (2010-02-03)
  [2620] Direct access to object variable (attributes) in Ruby - (2010-02-02)
  [2616] Defining a static method - Java, Python and Ruby - (2010-02-01)
  [2604] Tips for writing a test program (Ruby / Python / Java) - (2010-01-29)
  [2603] Ruby objects - a primer - (2010-01-29)
  [2601] Ruby - is_a? v instance_of? - what is the difference? - (2010-01-27)
  [2292] Object Orientation in Ruby - intermediate examples - (2009-07-16)
  [1587] Some Ruby programming examples from our course - (2008-03-21)
  [1217] What are factory and singleton classes? - (2007-06-04)
  [656] Think about your design even if you don't use full UML - (2006-03-24)
  [184] MTBF of coffee machines - (2005-01-20)

R109 - Ruby - Strings and Regular Expressions
  [3758] Ruby - standard operators are overloaded. Perl - they are not - (2012-06-09)
  [3757] Ruby - a teaching example showing many of the language features in short but useful program - (2012-06-09)
  [3621] Matching regular expressions, and substitutions, in Ruby - (2012-02-23)
  [3424] Divide 10000 by 17. Do you get 588.235294117647, 588.24 or 588? - Ruby and PHP - (2011-09-08)
  [2621] Ruby collections and strings - some new examples - (2010-02-03)
  [2614] Neatly formatting results into a table - (2010-02-01)
  [2608] Search and replace in Ruby - Ruby Regular Expressions - (2010-01-31)
  [2295] The dog is not in trouble - (2009-07-17)
  [2293] Regular Expressions in Ruby - (2009-07-16)
  [1891] Ruby to access web services - (2008-11-16)
  [1887] Ruby Programming Course - Saturday and Sunday - (2008-11-16)
  [1875] What are exceptions - Python based answer - (2008-11-08)
  [1588] String interpretation in Ruby - (2008-03-21)
  [1305] Regular expressions made easy - building from components - (2007-08-16)
  [1195] Regular Express Primer - (2007-05-20)
  [987] Ruby v Perl - interpollating variables - (2006-12-15)
  [986] puts - opposite of chomp in Ruby - (2006-12-15)
  [970] String duplication - x in Perl, * in Python and Ruby - (2006-12-07)


Back to
Ruby - yield; parallel routines
Previous and next
or
Horse's mouth home
Forward to
How to set up short and meaningfull alternative URLs
Some other Articles
Customer Review - Hotel Room, Melksham
Strong arm tactics in the bus industry? Poor result for the customer!
Travel, Transport and Tourism - A vision for Melksham, 2026
How to set up short and meaningfull alternative URLs
Ruby - examples of regular expressions, inheritance and polymorphism
Ruby - yield; parallel routines
Christmas 2010 - Well House Manor, Melksham, Hotel
Creating, extending, traversing and combining Ruby arrays
Why do I need brackets in Ruby ... or Perl, Python, C or Java
4300 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 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - 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).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2014: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/2980_Rub ... hism-.html • PAGE BUILT: Thu Sep 18 15:30:25 2014 • BUILD SYSTEM: WomanWithCat