Automatic Lua Properties?
Starting with an example using the Lua specification and testing framework Busted:
describe("automatic lua properties",function() it ("should be clear from an example",function() local autoprop = require 'autoprop' -- an empty table upon creation -- local config = autoprop() assert.True( #config == 0 ) -- properties are added dynamically on demand -- config.some.url = 'http://olivinelabs.com/busted' config.some.number = 42 config.some.other.url = 'https://github.com/nrother/dynamiclua' -- this should hold -- assert.are_equal(42, config.some.number) assert.True( #config.some.url > 0 ) assert.True( #config.some.other.url > 0 ) end) end)
Here is a little exercise in Lua metaprogramming.
Code
https://github.com/d-led/automatic-lua-property-tables
Spec: autoprop_spec.lua
Implementation: autoprop.lua
P.S. Other implementations: lua-users wiki: Automagic Tables
Just want to let you know that this implementation is awesome! Thank you for this!
Thanks! Very glad you found it useful! After I wrote it I’ve found some others, but it’s been a good little exercise