Hegwin.Me

朱雀桥边野草花,乌衣巷口夕阳斜。

Ruby命令行格式化输出

Format Your Output in Terminal with Ruby

在命令行输出内容,一般而言Ruby基本的方法都是够用的,比如 puts、print、sprintf系列;但如果要在terminal输出颜色,表格进度条等,就会比较难以实现了。 这里小节下自己探索后感觉好用的gems: 彩色输出(基于ANSI):rainbow; 表格输出:terminal-table; 大综合(包含彩色、表格和进度条):formatador。 R...

在Ruby中运行系统命令

Run system command in Ruby

在Ruby中有若干种方法来调用系统命令: 1. 反引号或者 %x(); 2. system 方法; 3. File; 4. Open3。 反引号及 %x() 与 system 的区别在于: system 只会返回 true/false;而`%x`在命令执行成功时,会返回命令的stdout,当命令支持失败时,会返回空字符串 `""` 这样看来其实反引号或者 `%x...

Ruby中目录和文件操作的几种方式

Different methods in Ruby to manipulate directories and files

创建目录: 方法一:利用 Dir.mkdir 可以创建一个目录,并且其有一个可选参数用来标记目录的权限。 如我要在 /Users/hegwin/Workspace 目录下创建一个 `ruby` 子目录,那么可以这么操作: Dir.mkdir('/Users/hegwin/Workspace/ruby') 正常创建后,Dir.mkdir 会返回整数 0。 这个方法和Li...

Ruby 2.5 允许在do/end代码块中使用rescue

Ruby 2.5 allows rescue/ensure inside do/end blocks

本文介绍Ruby2.5的一个新特性:在以前的Ruby版本中,如果你需要用的rescue来捕获和处理异常,你必须要把可能抛出异常的代码放在 begin end 块中,而在Ruby 2.5中,普通的 do end 块中你也可以直接使用 rescue 和 ensure 等异常处理的关键字了。注意这个功能不是向下兼容的,如果使用2.4则会遇到错误。

Rails优化SQL可能用到的工具

Tools to Help to Improve SQL in Rails

Rails查询数据慢?想找到性能瓶颈在哪里? 目前我个人是用到了以下几个工具: 1. New Relic 老牌的性能检测工具,与Rails集成之后,在Database监控中能显示最慢的Query之类的,不过这需要New Relic至少订购了Essentials级别的计划。 2. Gem: active_record_query_trace 你可以在log中看到每个SQL是来...

Selenium driver 对 JS Confirm 的处理

How to handle javascript confirm with selennium webdriver

在Web开发中经常会使用JS弹出确认框,在feature测试脚本如何处理这个弹出框呢? page.driver.browser.switch_to.alert.accept # => 点击OK page.driver.browser.switch_to.alert.dismiss #=> 点击 Cancel page.driver.browser.switch_to.a...

利用Ruby调用TTS进行文本发声阅读

Invoke System TTS in Ruby

如题,之所以有这么一想法,是因为想找个单词报听写的app,但是一直找不到合适的,不如自己试试搞一个。于是就去找找调用TTS(text to speech)的工具了。Linux下面可以使用Festival TTS,Win7应该都默认是有一个TTS的,我们直接调用系统的就行

如何Sinatra部署项目

How to develop Sinatra project

Sinatra和Rails一样都是基于rack的应用,在部署前,在sinatra项目的根目录下面加上一个config.ru的文件,内容如下 require "myapp" # 项目主文件 run Sinatra::Application # 如果是定义的子类,则直接用自己定义的类的名字。 这之后的过程基本就和rails的部署没有什么不同了,以下以 Nginx + Passeng...