开始学习 rails 了,先拿 ruby-china 看看。 setup.rb 中有几段代码不解
puts_section "Checking Package Dependencies..." do
pkg_exist = true
[["bundle","Bundler"],["mongod","MongoDB 2.0+"],["redis-server","Redis 2.0+"],["memcached","Memcached 1.4+"],["convert","ImageMagick 6.5+"]].each do |item|
puts_line_with_yn item[1] do
if `which #{item[0]}` == ""
pkg_exist = false
false
else
true
end
end
end
这段代码难道仅仅依靠{if`which #{item[0]}
` == ""}就判断我是否安装了相应的组件吗?
有点没明白怎么回事,which 是个什么意思(目前知道这个是 shell 命令)
第 2 段
%w(config mongoid redis thin).each do |fname|
`cp config/#{fname}.yml.default config/#{fname}.yml`
end
这里的%w是什么意思?(已解答)等价于 [ ];
第 3 段
def replace_file(file_name, from, to)
File.open(file_name, "r+") do |f|
out = ""
f.each do |line|
out << line.gsub(from, to)
end
f.pos = 0
f.print out
f.truncate(f.pos)
end
end
这里的f.truncate(f.pos)
,有什么特别的意义吗?