aardioRuby可视化快速开发独立EXE桌面程序
aardio 可以方便地调用 Buby,支持系统自带 Ruby 环境。如果没有安装 Ruby ,aardio 会自动安装。所以 aardio + Ruby 开发的软件可以生成体积较小的独立 EXE 文件。用 aardio 执行 Ruby 代码
用法很简单,aardio 代码示例:import win.ui; var winform = win.form(text="执行Ruby代码") winform.add( edit={cls="edit";left=26;top=16;right=737;bottom=435;edge=1;multiline=1} ) import process.ruby; //执行 Ruby 代码 var out = process.ruby.exec("puts "测试UTF-8"") winform.edit.print(out); //解析 Ruby 表达式并返回为 aardio 对象 var out = process.ruby.eval(`[1, 2, { name: "tanaka", age: 19 }]`) winform.edit.print(out); winform.show(); win.loopMessage();
在 aardio 中运行上面的代码:
process.ruby.exe() 以管道方式打开 Ruby 进程执行 Ruby 代码,第一个参数可以是 *.rb 代码文件路径,也可以直接指定 Ruby 代码。可以添加不定个数启动参数,也可以在一个字符串参数中写多个启动参数。
process.ruby.eval() 可以解析第一个字符串参数指定的 Ruby 表达式的值,返回值会自动转换为纯 aardio 对象。CGI 调用 Rubyimport win.ui; var winform = win.form(text="Ruby CGI") var code = /* require "cgi" cgi = CGI.new puts cgi.header puts "This is a test" */ //创建测试文件 string.save("/res/index.rb",code); //启动嵌入式 HTTP 服务器,自动分配空闲服务端口 import process.ruby.simpleHttpServer; var url = process.ruby.simpleHttpServer.startUrl("/res/index.rb"); //创建浏览器控件显示网页 import web.form; var wb = web.form(winform); wb.go(url); winform.show(); win.loopMessage();
process.ruby.simpleHttpServer 基于 aardio 标准库 wsock.tcp.simpleHttpServer 创建了一个嵌入式的多线程 HTTP 服务器,自动分配空闲服务端口,不会与其他程序冲突,在程序退出时此 HTTP 服务器会自动退出。很省心不需要写多余的代码。
上面的 "/res/index.rb" 可以放到工程资源目录下,发布的时候能生成独立 EXE 文件。
创建 Ruby 交互解释器
aardio 代码示例:import console console.setTitle("Ruby 交互解释器"); import process.ruby; process.ruby.cmd("irb");
按 Ctrl + D 或者输入 exit 以后回车可以退出。执行 Rake 命令import win.ui; /*DSG{{*/ var winform = win.form(text="执行Rake命令") winform.add( edit={cls="edit";left=26;top=16;right=737;bottom=435;edge=1;multiline=1;z=1} ) /*}}*/ var rakefile = /* task :purchaseAlcohol,[:arg1, :arg2] do |t, args| puts "#{args[:arg1].to_i + args[:arg2].to_i}" end */ //创建测试文件 string.save("/rakefile",rakefile ) import process.ruby; var result,err = process.ruby.rake("purchaseAlcohol[123,2]"); winform.edit.print(result,err); winform.show(); win.loopMessage();
process.ruby.rake() 创建进程管道运行 rake 命令,返回值分别为:标准输出,错误输出。
第一个参数指定 rake 命令。可选自第二个参数开始指定其他命令行参数。多个命令行参数自动合并,不在双引号内、且包含空白或需要转义的参数转义处理后首尾自动添加双引号。
需要先在工作目录下创建 rakefile 。可以用 process.ruby.workDir 指定 Ruby 工作目录。默认工作目录为 "/" ,"/" 在 aardio 中表示应用程序根目录(开发时为工程根目录,发布后为 EXE 所在目录 )。用 aardio 可视化开发图形界面
用 aardio + Ruby 混合开发的主要目的是为了使用 aardio 的可视化开发图形界面。
如果不熟悉 aardio ,建议先看一遍 aardio 开始页的《 aardio 编程语言快速入门——语法速览 》。aardio 开发界面很简单,相关教程、范例、开源项目也很多,这里就不多讲了。
天坛公园第41届菊花展开幕六千多盆菊花扮靓天坛央广网北京10月22日消息据天坛公园微信公众号天坛消息,10月21日,天坛公园第41届菊花展正式开幕。作为北京菊花文化节的分会场,天坛之内,六千余盆各色菊种争奇斗艳,占尽芳菲。据悉
去这座城逛吃三天,我愿称它为东北隐藏食神今天想给大家种草的目的地很特别,它原本没有在我的选题计划中,也是机缘巧合,让我对这座城市产生了偏爱,想着一定要给大家分享。它拥有着悠久且厚重的历史,也是被多重文化所包裹的东北最大工
旅顺太阳沟彩叶最佳观赏季到了晨报讯(半岛晨报39度视频首席记者张锡明)一年一度的旅顺太阳沟彩叶节,已成为大连秋天的文化旅游品牌。如今,又到了每年来太阳沟观赏彩叶的季节。连日来,新华大街乐园街银杏先抢了头彩,进
捷克自由行一次颠覆我对捷克印象的旅行今年秋假我把捷克列为重点进行一次深度游,目的就是想去看一下除了首都布拉格之外的其他地方。因设计了一个东南西北的大四方形进行自驾!布拉格作为一国之都,其美丽大气自不必说,布拉格城堡查
何雪媛林徽因生母,生性狂躁负能量满满,与丈夫离心,害苦女儿一代才女林徽因,在给友人的信中,居然这样说道我自己的妈妈把我赶进了人间地狱,差不多希望我自己死掉或者从未降生在这样的家庭。被自己的母亲逼到想寻死,究竟是林徽因夸大其辞,还是其中另有
新疆今年以来突出四个注重全力以赴稳增长,主要经济指标增速位于全国前列中国发展网讯据新疆维吾尔自治区发展改革委网站消息国务院办公厅日前发出通报,对国务院第九次大督查发现的60项典型经验做法给予表扬。其中,新疆维吾尔自治区发展改革委突出四个注重全力以赴
上新!神十四乘组在轨拍摄祖国美景神舟十四号乘组航天员近期在轨拍摄作品上新啦!一起来欣赏祖国大地美景吧还有航天员在太空写下的可爱小诗大美西藏航天员刘洋拍摄白云在你头顶你仰视云底白云在我身下我俯视云顶朦胧太湖航天员蔡
大学保安,装富17年如果不是说漏嘴程师傅装富17年的事或许永远不会有人知道程师傅今年60岁2003年4月,通过招考他成为杭州电子科大的一名保安2005年起到现在他已经资助了6名大学生程师傅第一次资助大
在基层沃土绽放青春之花中国青年报客户端讯(中青报中青网记者潘志贤通讯员孙颖)今年暑假,在参与全员核酸检测工作中,我体会到了基层工作的不易。新时代新征程中,我们更要体现出当代大学生的价值,自觉承担起国家和
乡村振兴重点帮扶县这样做好衔接文章乡村振兴重点帮扶县这样做好衔接文章广西严格落实四个不摘要求,大石山窝蝶变为生态绿洲金秋时节,稻谷压穗瓜果满枝。记者在广西部分乡村振兴重点帮扶县蹲点调研了解到,各地严格落实四个不摘要
双枪老太婆的双面人生花甲之年抗日,最终却晚节不保我们常常说人老不以筋骨为能,但在抗日战争时期这样的国难之时却涌现出一个个老英雄,其中最为大家所熟悉的就是双枪老太婆,她在花甲之年率子女举家抗日十几年,30多名家人为国捐躯,让人肃然