Added a global demo function that charge demos on demand - gsl-shell.git - gsl-shell

index : gsl-shell.git
gsl-shell
summary refs log tree commit diff
path: root/demo-init.lua
diff options
context:
space:
mode:
authorFrancesco Abbate <francesco.bbt@gmail.com>2011年06月24日 16:00:23 +0200
committerFrancesco Abbate <francesco.bbt@gmail.com>2011年06月24日 16:00:23 +0200
commitd2419b0c98687cf38bb7b45c013db2ea97ef69af (patch)
tree294afec338dcb3fdbe3d36c61a9f3cd5149c21c7 /demo-init.lua
parent1f924b19d76a5ebb2eecad14ebf5a167ddf50807 (diff)
downloadgsl-shell-d2419b0c98687cf38bb7b45c013db2ea97ef69af.tar.gz
Added a global demo function that charge demos on demand
Diffstat (limited to 'demo-init.lua')
-rw-r--r--demo-init.lua 46
1 files changed, 46 insertions, 0 deletions
diff --git a/demo-init.lua b/demo-init.lua
new file mode 100644
index 00000000..19881949
--- /dev/null
+++ b/demo-init.lua
@@ -0,0 +1,46 @@
+
+local demo_list = {}
+
+local function load_demo(name)
+ local group, info = dofile('demos/' .. name .. '.lua')
+ local section = demo_list[group]
+ if not section then
+ section = {}
+ demo_list[group] = section
+ end
+ local i = #section
+ for k, v in ipairs(info) do
+ section[i+k] = v
+ end
+end
+
+local demo_files = {'fft', 'bspline', 'wave-particle', 'plot'}
+
+for i, name in ipairs(demo_files) do
+ load_demo(name)
+end
+
+local function print_demos_list()
+ for group, t in pairs(demo_list) do
+ echo('*** ', group)
+ for k, v in ipairs(t) do
+ echo(v.name .. ' - ' .. v.description)
+ end
+ echo ''
+ end
+end
+
+local function load_demo(name)
+ for group, t in pairs(demo_list) do
+ for k, entry in ipairs(t) do
+ if entry.name == name then
+ return entry
+ end
+ end
+ end
+end
+
+return {
+ list = print_demos_list,
+ load = load_demo,
+}
generated by cgit v1.2.3 (git 2.39.1) at 2025年09月14日 11:57:38 +0000

AltStyle によって変換されたページ (->オリジナル) /