aardio + Ruby 可视化快速开发独立 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 调用 Ruby

import 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 开发界面很简单,相关教程、范例、开源项目也很多,这里就不多讲了。

展开阅读全文

页面更新:2024-02-29

标签:根目录   表达式   示例   命令   独立   桌面   参数   快速   代码   服务器   文件   测试   目录   程序

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top