railscaffold script – for namespace supporting

March 12th, 2009 no comment

使用 rails 2.2.2 自带的 scaffold 生成带命名空间的脚本架时(如 Admin::Product),scaffold 会生成带命名空间的model(app/models/admin/product.rb),并且生成的 controller 代码看起来也很怪异,不能工作,想到后面还有那么多 scaffold 要生成,一个一个手动改实不在符合 DRY 精神,So, 写个脚本做些自动清理调整的工作看来相当有必要。 when running scaffold came with rails 2.2.2 with namespace(i.e. Admin::Product), it generates new model with namespace(app/models/admin/product.rb) and controller code looks wierd, which normally you didn’t expect it, this script done some fixing for u 环境 Env ruby 1.8.7 / gems [...]

几个好用的 vim 插件

February 9th, 2009 no comment

NERDTree TextMate 有工程管理功能,其实就是在编辑窗口左边附一个以工程根目录为其根目录的树形文件管理器,pspad、editplus 也带有类似作用的树形文件管理器。VIM也有强大的工程管理插件 Project,可以仔细到哪些文件夹,哪些文件要归入工程里。强大的代价就是用起来麻烦,新文件夹什么得手动往里面加也不省心。NERDTree就是一款简单的树形文件管理器,可以把目录加入 bookmark, 一个工程一个bookmark跳起来方便。安装简单,下载,直接解压到 vimfiles 目录(windows),或者 ~/.vim (unix/linux),然后打开 vim 执行一下 :helptags ~/.vim/doc snippetsEmu snippetsEmu的slogon是“An attempt to emulate TextMate’s snippet expansio”, 嗯,TextMate确实挺牛逼,大家都要抄它。相当好用的功能,当你用 vim 编写 html 页面, 那一堆必要的 DOCTYPE head body 标签复制来粘贴去也是一件麻烦事。把它交给 snippetsEmu 吧。snippetsEmu,安装过程比较特别,snippy_plugin.vba 是插件安装文件,下载后用 vim 打开然后执行 :source % 命令即完成 snippetsEmu 安装。 snippy_bundles.vba 是默认的自动完成代码片段,安装后可以在 ~/.vim/after/ftplugin (unix/linux) 或者 vimfiles/after/ftplugin (windows) 下面找到自动完成脚本,了解会对哪些类型哪些关键字进行自动完成。使用也简单,如在编辑 html 文件时, 打入 ref [...]

搭建 ubuntu 8.10 下的 netbeans ror 开发调试环境

November 19th, 2008 no comment

1. 打开 Terminal, 切换到 root 用户 sudo su 2. 安装 jdk apt-get install sun-java6-jdk 3. 下载 netbeans 并安装 ./netbeans-6.1-ml-linux.sh 4. 安装 ruby, ruby-debug-base 需要 ruby-dev 和 build-essential 进行编译 apt-get install ruby rubygems libopenssl-ruby ruby-dev build-essential 5. 安装好了 rubygems, 就可以使用 gem 来安装 rails ruby-debug, 注意 netbeans 6.1 需要 v0.1.10 的 ruby-debug-ide 才能正常调试 gem install rails gem [...]

ubuntu + lighttpd + fastcgi 单域名多Rails应用布置

November 17th, 2008 no comment

软件版本:ubuntu 8.04/lighttpd 1.4.19/ruby on rails 2.1.2 假定需要布置多 ror 应用的域名是 ror.example.com, 域名下一个子目录为一个应用,如 /app1, /app2.. 首先,需要做的就是配置 lighty $HTTP["host"] =~ “^ror\.example\.com$” {     $HTTP["url"] =~ “^/app1″ {         alias.url = (“/app1″ => “/path/to/app1/public”)         server.error-handler-404 = “/app1/dispatch.fcgi”         fastcgi.server = ( “.fcgi” =>             (( “socket” => “/tmp/app1.socket”,                “bin-path” => “/path/to/app1/public/dispatch.fcgi”,                “bin-environment” => (“RAILS_RELATIVE_URL_ROOT” => “/app1″) [...]

在 dreamweaver 中调用 gvim 或第三方文件比较工具

November 11th, 2008 no comment

在 dreamweaver 的文件面板选择两个文件,右击之后可以看到有"比较本地文件"这个选项,可惜 dreamweaver 本身并没有提供文件比较的功能,需要在“首先参数”中指定第三方文件比较工具。我原本装有 gvim ,支持文件比较,但需要指定-d参数进入比较模式(gvim.exe -d <LEFT_FILE_PATH> <RIGHT_FILE_PATH>)。令人发指的是 dreamweaver 只能指定可执行程序,不能作任何 customize,也就是完全不能添加参数,有够dumb。 无奈之下,只好操起非常不熟练的 c,做了个 adapter, 有需要在 dreamweaver 中使用文件比较功能的朋友请点击这里下载 原理 程序比较简单,用一个文本文件存储自定义命令,adapter 收到 dreamweaver 传入的两个文件名之后,读取文本文档中的自定义命令样式,用 sprintf 把文件名格式进去之后再调用。 源代码: main.c /*  * File:   main.c  * Author: Klesh Wong  *  * Created on 2008年11月10日, 下午15:07  */ #include <windows.h> #include <stdio.h> int main(int argc, char** argv) {     char [...]