Skip to content

Latest commit

 

History

History
57 lines (39 loc) · 3.03 KB

README.md

File metadata and controls

57 lines (39 loc) · 3.03 KB

mw.smw library functions

The following functions are provided by the mw.smw package.

Overview

Notes

Difference between mw.smw.ask and mw.smw.getQueryResult

Both functions allow you to retrieve data from your smw store. The difference lies in the returned table. Where mw.smw.ask returns a very simplistic result set (its values are all pre-formatted and already type cast), mw.smw.getQueryResult leaves you with full control over your returned data, giving you abundant information but delegates all the data processing to you.

In other words:

  • ask is a quick and easy way to get data which is already pre-processed and may not suite your needs entirely. However, it utilizes native SMW functionality like printout formatting (see smwdoc for more information)
  • getQueryResult gets you the full result set in the same format provided by the api

For more information see the sample results in mw.smw.ask and mw.smw.getQueryResult.

Using #invoke

For a detailed description of the #invoke function, please have a look at the Lua reference manual.

mw.smw library extension

ScribuntoLuaLibrary is the interface for functions that are made available in the mw.smw package and can be extended easily with the expectation that some guidelines are followed to ensure future maintainability and release stability.

  • Register the function with ScribuntoLuaLibrary::register
  • Isolate the processing and if necessary add an extra class (e.g. LuaAskResultProcessor, LibraryFactory) to separate necessary work steps
  • Add tests for PHP and Lua components to ensure that both parts are equally tested and correspond to each other in the expected outcome
  • Existing tests should not be altered unless those contain a bug, an unexpected behaviour, or an existing function has changed its behaviour and therefore the expected output