Difference between revisions of "Including simplelib in a Project"

From OpenEUO
Jump to: navigation, search
m (Intermediary Library Authors)
m
Line 14: Line 14:
  
 
Version will always be a monotonically increasing real number.
 
Version will always be a monotonically increasing real number.
 +
 +
== A Note on the Object Model ==
 +
 +
See [http://www.lua.org/pil/16.4.html Programming in Lua -- Private Objects] to understand the employed object model. Objects are implemented as closures, so the colon calling syntax e.g. object:method() is ''never'' valid to use with simplelib objects or tables.  Just use the dot operator, e.g. object.method()  This applies to the object returned by the initial dofile call, as well.
  
 
== Intermediary Library Authors ==
 
== Intermediary Library Authors ==

Revision as of 00:06, 2 November 2010

Dofile Call

The simplelib.lua file belongs in the lib/ subdirectory of the openeuo root directory. To use simplelib, include the following line at the top of the dependent script:

 local sl = dofile(getinstalldir()..'/lib/simplelib.lua')

That's all it takes to begin using simplelib. This initializes the library and assigns its interface to the local variable sl. In order to avoid usage errors, the interface is a special table which guards against user modification. Attempting to add new keys to the table or referencing non-existent keys will result in an error.

Version

You can check the version of simplelib with the interface method slversion():

 local v = sl.slversion()

Version will always be a monotonically increasing real number.

A Note on the Object Model

See Programming in Lua -- Private Objects to understand the employed object model. Objects are implemented as closures, so the colon calling syntax e.g. object:method() is never valid to use with simplelib objects or tables. Just use the dot operator, e.g. object.method() This applies to the object returned by the initial dofile call, as well.

Intermediary Library Authors

Calling dofile() on simplelib.lua multiple times is unnecessary but will cause no harm unless the global environment guard variable simple_lib_soliton__ is overwritten. That's the only value/variable defined by simplelib in _G (or other calling environment) by default. Calling simple_lib_soliton__ returns the unique interface table of simplelib.

See Also