ruby语法是什么意思?

Jak*_*ake 1 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
Run Code Online (Sandbox Code Playgroud)

这个小窍门是一个耙子任务.当rake任务运行时,控制台窗口会实时更新,如下所示:

关键字.

关键字......

关键字.....未找到

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

Gar*_*han 7

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

#%d,#它只是一个#而且%d是一个C-ish格式代码,意思是"在这里插入一个整数值".

  • @Jake%s表示取一个字符串,35右对齐35个字符. (2认同)