`
renzhen
  • 浏览: 251622 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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目录即可,方便有效,也不会出错。

  今天就说到这里,休息,休息,准备下班,祝我度过一个无忧无虑的周末
0
2
分享到:
评论

相关推荐

    ython读取由ruby/jruby生成的yml数据

    用python读取由ruby/jruby生成的yml数据

    Ruby-JRuby一个Ruby语言的Java实现

    1. **性能提升**:JRuby利用JVM的JIT编译技术,可以在某些情况下提供比原生Ruby更好的性能。 2. **跨平台兼容**:JRuby运行在JVM上,因此可以运行在任何支持JVM的操作系统上。 3. **企业级支持**:与Java生态系统的...

    巧妙规避Java与Ruby语言迁移过程中的风险

    在IT行业中,语言迁移是一个常见的现象,特别是在软件开发领域,开发者可能会从一种编程语言迁移到另一种,例如从Java转向Ruby。然而,这种迁移过程往往伴随着风险。本文主要探讨了Java和Ruby这两种语言在迁移过程中...

    proxy_fetcher::flexed_biceps:Ruby JRuby TrufflleRuby gem&CLI,用于处理来自各种来源的代理列表

    Ruby / JRuby lib用于管理代理 通过从多个提供程序获取并验证实际的代理列表,此gem可以帮助您的Ruby / JRuby应用程序使用代理发出HTTP(S)请求。 它为您提供了一个特殊的Manager类,该类可以加载代理列表,对其...

    hdfs client for ruby (just jruby) hdfs客户端 基于jruby.zip

    标题中的"hdfs client for ruby (just jruby) hdfs客户端 基于jruby.zip"指出,这个压缩包提供了一个专门为JRuby(Java版本的Ruby)设计的HDFS客户端。JRuby允许Ruby代码与Java平台无缝集成,因此这个客户端能够利用...

    为并发性而构建的Ruby / Rack Web服务器-Ruby开发

    Puma:为并发构建的Ruby Web服务器Puma是用于Ruby / Rack应用程序的简单,快速,多线程,高度并发的HTTP 1.1服务器。...每个请求都在一个单独的线程中提供服务,因此是真正的并发Ruby实现(JRuby,Rubinius

    docker-ruby:用于许多 MRI Ruby 和 JRuby 解释器的 Dockerfiles

    Docker Ruby 这个 repo 使用当前可用于内容为一堆不同风格的 MRI Ruby 和 JRuby 自动生成 Dockerfile。 查看abevoelker/ruby:ruby-2.2.0 rubies/目录以查看可用的,例如abevoelker/ruby:ruby-2.2.0 。 abevoelker/...

    如何安装与配置JRuby

    1. **验证安装**: 打开 CMD 命令行,输入 `jruby -v`,正常情况下会显示类似 `ruby 1.8.6 (2008-05-28 rev 6586) [x86-jruby1.1.2]` 的信息。 2. **编写并运行 "Hello World"**: 创建一个名为 `HelloWorld.rb` 的...

    安装Ruby,JRuby,Rubinius,TruffleRuby或MRuby-Ruby开发

    ruby-install安装Ruby,JRuby,Rubinius,TruffleRuby或mruby。 功能支持安装任意版本。 支持从ruby-versions下载最新版本和校验和。 支持installi ruby​​-install安装Ruby,JRuby,Rubinius,TruffleRuby或mruby...

    ruby_vs_crystal:三种 Ruby(MRI、JRuby 和 Rubinius)与 Crystal 的比较

    三种 Ruby(MRI、JRuby 和 Rubinius)与 Crystal 的比较 设置 Mac OSX(小牛队) Ruby MacBook Air(1.3 Intel i5,4GB 1600 MHz DDR3) 水晶 $ time ./foo_crystal real 0m7.971s user 0m7.994s sys 0m0.250s ...

    JRuby和Rails-让Ruby语言融入于Java项目.rar

    1. **JRuby基础**:介绍JRuby的历史、特性以及如何安装和设置JRuby环境。解释JRuby与MRI(Matz's Ruby Interpreter,标准的Ruby解释器)的区别,包括JRuby对Java类库的兼容性。 2. **Ruby on Rails概述**:解释...

    jruby-dist-9.1.15.0-bin.zip

    JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库 全面集成。 截至2017.12.08最新稳定版 JRuby 官方更新说明: JRuby 9.1.x is our current ...

    jruby1.7.8版本呢

    JRuby 是一个开源的、高性能的 Ruby 解释器,它能够将 Ruby 代码编译成 Java 字节码,从而在 Java 虚拟机(JVM)上运行。JRuby 的出现使得 Ruby 开发者能够利用 JVM 的强大功能和丰富的库,同时也让 Java 开发者能够...

    NetBeans Ruby and Rails IDE with JRuby 2009

    ### NetBeans Ruby and Rails IDE with JRuby 2009 #### 一、安装NetBeans IDE及Ruby支持 - **下载IDE**:首先需要下载最新版本的NetBeans IDE,该IDE集成了对Ruby的支持。 - **安装Java SDK**:由于NetBeans是...

    jruby-src-1.0

    1. **平台兼容性**:由于JRuby运行在JVM上,它可以无缝地运行在任何支持JVM的操作系统上,包括Windows、Linux、macOS等。 2. **Java集成**:JRuby可以直接调用Java库,反之亦然,使得Java开发者可以利用Ruby的便利...

    JRuby在Java测试中的应用

    JRuby是一种使Ruby语言能在Java平台上运行的实现方式。它不仅保留了Ruby语言简洁且强大的特性,还充分利用了Java平台的强大功能,如性能优化、垃圾回收机制等。由于Ruby本身具备高度的面向对象编程能力以及灵活的...

    jruby-dist-9.1.15.0-bin.tar.gz

    JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库 全面集成。 截至2017.12.08最新稳定版 JRuby 官方更新说明: JRuby 9.1.x is our current ...

    org.jruby.rar

    1. JRuby 定义:JRuby 是 Ruby 语言的一个开源实现,它的目标是使 Ruby 程序能够无缝地在 Java 平台上运行。JRuby 不仅实现了 Ruby 标准库,还支持 Ruby on Rails 框架,使得 Java 开发者能够利用 Ruby 的生产力特性...

Global site tag (gtag.js) - Google Analytics