mysql,Linux,HighPerformance,ruby on Rails

2010年1月25日星期一

一个例外引发的解决方法-Gem View Goo的源码分析及解决,特例

       受朋友之托,非要从网上抓取信息。想来不是很难,就帮帮吧。使用mechanize,nokogiri就能搞定。
因为有一段时间没用了,想起原来使用过的gem views--Goo,开源的,@RobinLu出品。下载0.4版后
在macos上跑了一下,出来的gem list竟然是Library/Ruby/Gems下的。我晕。原来这和我的环境有关系
我把ruby环境全部使用Darwin Ports来安装的。幸好Goo开源的,去github上clone一份,打开xcode分析。

       我对Cocoa/object C不熟悉,当然我只关心它是如何拿到gem list的。没用多久,找到它:gem_helper.rb
关键代码就是:
  def self.specs
    spec_dir = File.join Gem.dir, 'specifications'
    source_index = Gem::SourceIndex.from_gems_in spec_dir
    template = ERB.new TEMPLATE
    puts template.result(binding)
  end
可是我的bash profile已经配置path了,怎么又变成系统原生的路径了呢???
代码没有错,就只能是这个rb第一行的解释不对。是的。ruby是script language,所以第一行解释环境还是很重要的。ok.
改一下,
from #!/usr/bin/env ruby to #!/opt/local/bin/ruby

Done.Goo就跑起来了。这里注意,为了满足个人的喜好,并不需要重新编译,直接去Goo查看内容包,在包里直接改代码即可。

--
tommy xiao
E-mail: xiaods(AT)gmail.com

没有评论:

发表评论