|
Encapsulating shared code in a Lua module
Have you ever written code like this?
seps = {" "," "," [",'] "','" '," ",' "','" "','"'}
Yes, I have ... in fact, that's code that I wrote on Tuesday during the Lua course; it's an indexed table of the separators used to split down a web access log record that's in the apache httpd combined format.
Am I proud of it?
Not really ... in fact, coding it in front of my delegates, I got it wrong initially and we had to go back and look very carefully at the single and double quotes. BUT once I got it right, it works well enough and there are sufficient comments around for it to be debugged if need be. Having said that, I would rather like to hide it under the carpet, and avoid it tripping up anyone else who stumbles across it.
Firstly - I put the code into a function so that it's lightly wrapped (see here) and can be called / prodded / used without the user being fearful of upsetting the code if he/she cuts and pastes it.
Then, I put the code into a separate module. That's a far heavier wrapping, using a table as a fresh namespace, and leaving only the names of the elements in the table / module / namespace visible to the calling file. The module source code is here and the source of a sample calling program is here (written 2009-08-13)
Associated topics are indexed under U109 - Lua - Modules [2455] Lua examples - coroutines, error handling, objects, etc - (2009-10-15) [1699] If you are learning Lua, here are some more examples - (2008-07-06)
Some other Articles
Thornham Farm Shop, Seend Cleeve, nr MelkshamGeocoding - converting address to latitude / Longitude with PHP via GoogleError Handling in Lua with assert and pcallA fresh example - objects the Lua wayEncapsulating shared code in a Lua moduleChecking if the user has entered a number (Lua)Passing multiple results back from a function - Lua, Python, etcSee this page in FrenchTraining, Open Source computer languagesAll change - Wiltshire Parliamentary
|
4088 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 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).
|
|