Ruby/JRuby For Fun(1)

Program For fun,恐怕是对Ruby这个语言的一个很高的评价了,以前在做毕业设计时使用了这个语言,深深的被它迷住了,后来到了现在的公司,虽然只使用PHP开发服务器端程序,C#开发客户端程序,但是平日里,我总是会写一些Ruby脚本,它总能够已很少的代码量写出强大的工具,而这些工具也减少我很多手工工作,写Ruby是fun,用Ruby也是fun,下面我就show一下Ruby/JRuby在我工作中给我的帮助。
1.文件监视器
这个脚本的主要作用是监视某一个目录下的文件,如果文件发生改变或删除,则触发对应接口(函数),我主要使用这个脚本做文件修改后自动上传到远程服务器的工作。
因为我们公司经常会为客户做一些定制开发,我们会把客户的试用系统放到一台虚拟主机上,我们修改内容直接FTP传到服务器上,用户可以通过浏览器访问系统,实时看到我们的修改情况,但是手动上传文件太繁琐了,我们系统的目录很多且深,修改后上传往往需要在FileZilla上频繁切换目录,很容易打断我的编程思路,而且有时为了调一些html界面和js脚本,我会大量重复修改某一个或一系列文件,而每次改完手动上传令我很厌烦,终于有一天我“忍无可忍”情况下开发了这个文件监视器用来自动化这个过程,当然现在他的作用也不仅仅只是自动化上传了。
这个脚本没有使用windows api,而是使用了轮询的方式,脚本使用两个线程,主线程不断的访问监视的文件,看文件是否修改或删除,如果是,则触发相应的接口,次线程获取命令行输入,根据输入命令执行特定操作,我将接口代码放到一个单独的rb文件中,有主程序根据配置文件(YAML)读取并把这个文件load进来,从而实现了系统扩展性,这个脚本只能在JRuby下使用。
如今这个文件成了我最常用的脚本,每次我总是修改一下配置文件,运行脚本,常常一开就是一整天,期间我对这个脚本进行多次的修改和扩展,它的容错性得到了很大的提高,几乎不再会突然悄无声息的退出了,而功能也增强了,可以打开多个脚本,监视不同目录下的文件,上传到不同的服务器上(以前也可以,但很烦,现在只要改个变量值),这一下,我的工作效率就更高了,可以很随心所欲的切换做不同客户的内容而不必繁琐于切换FTP服务器和上传的问题了。

2. 自动制作补丁
这个脚本内容和作用比上面的文件监视器脚本要简单的多了,前面说到,我们公司要为客户进行定制开发,开发完了就要把修改的文件打包发给客户,让客户覆盖到他们系统中,手动制作补丁十分麻烦,首先你要找出所有的修改的文件,并且要按照文件所在目录结构复制出来,其中很容易漏掉修改的文件或者放错目录,时间长效率低,于是想到用ruby做一个自动做补丁的脚本。
这个脚本实现很简单,首先填入开发的最早时间,然后脚本就会从本地工程目录找出所有修改时间大于开发时间的文件,并按照本地工程目录结构复制到另外指定的patch目录,然后人工查看一下补丁文件中有没有不需要的文件,如有就删除,最后只要打包patch目录即可,方便有效,也不会出错。

今天就说到这里,休息,休息,准备下班,祝我度过一个无忧无虑的周末 :D 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值