2
通常使用Ruby庫的命令行我可以這樣做:從命令行更簡單的rubygems?
ruby -rfastercsv -e 'code'
不幸的是這並不RubyGems的工作,因爲他們不是默認啓用的,不管RubyGems的不覆蓋require
沒有按」 Ť似乎與-r
開關工作,所以我不得不這樣做,而不是:
ruby -e 'require "rubygems"; require "fastercsv"; code'
很煩人的一個班輪 - 42個字符的開銷只有13非RubyGems的庫進行比較。有什麼辦法可以避免這種情況?
我寫這個劇本來解決這個問題(它可以作爲多個-e "code"
是允許的,並且require
是冪等的,因此不應該與-p
/-n
或其他任何東西,只要我可以告訴干擾),但它的所有比較難看,我也不會介意一個更優雅的解決方案:
args = []
until ARGV.empty?
arg = ARGV.shift
if arg =~ /\A-r(.*)\Z/
args << "-e" << "require 'rubygems'; require '#{$1.empty? ? ARGV.shift : $1}'"
else
args << arg
end
end
exec "ruby", *args
的主要問題,爲什麼'紅寶石-rubygems -rfastercsv'不工作,是RubyGems的覆蓋'require'和' - r'不使用ruby'require'方法。 – 2010-06-24 18:18:50