ruby语法是什么意思?

时间:2012-04-28 21:54:45

标签: ruby printf

task('google:rankings' => :environment) do
  def find_item uri, query
    search = Google::Search::Web.new do |search|
      search.query = query
      search.size = :large
      search.each_response { print '.'; $stdout.flush }
    end
    search.find { |item| item.uri.downcase.include?(uri.downcase) }
  end

  def rank_for query, domain
    print "%35s " % query
    if item = find_item(domain, query)
      puts " #%d" % (item.index + 1)
    else
      puts " Not found"
    end
  end

  Campaign.all.each do |campaign|
    campaign.keywords.each do |keyword|
      rank_for keyword.set, Domain.find(campaign.domain_id).name if (keyword.set)
    end
  end
end

这个小窍门是在rake任务中。当rake任务运行时,控制台窗口会实时更新:

  

关键字。

     

关键字......

     

关键字.....未找到

我不清楚#%d发生了什么?如何使点的打印多次发生?

1 个答案:

答案 0 :(得分:7)

rank_for的第4行(或任何行)未打印点。它们是由早先传递给search.each_response几行的块打印出来的。

#%d中,#只是#%d是C-ish格式代码,意思是“在此处插入整数值”。