"".chomp
返回""
,如果哪个不知道,系统命令将返回空字符串。换句话说,下面的代码将缓存“”而不再检查系统。
@wkhtmltoimage ||= `which wkhtmltoimage-proxy`.chomp
我想
.empty?
如果chomp在空字符串上返回 nil,则不会有问题。有什么建议吗?
答案 0 :(得分:3)
创建一个缓存行调用的方法,在那里检查一个空字符串,如果是,则返回nil,否则返回输出。
def wkhtml_to_image_command
output = `which wkhtmltoimage-proxy`.chomp
output.empty? ? nil : output
end
@wkhtmltoimage ||= wkhtml_to_image_command
答案 1 :(得分:0)
作为方法缓存的替代方案,这是一种更紧凑的单线程。
@wkhtmltoimage ||= (c=`which wkhtmltoimage-proxy`.chomp).empty? ? nil : c
不能像缓存方法返回那样可读,我必须承认。