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
Этот лакомый кусочек находится внутри задачи грабли. Когда задача рейка запускает обновления окна консоли в режиме реального времени следующим образом:Что означает синтаксис рубина?
ключевое слово.
ключевое слово ...
ключевое слово ..... не найдено
Я не совсем ясно, о том, что происходит с #%d
? Как это происходит, когда печать точки происходит несколько раз?
Дангит едва видел сам. что в этом случае 35%? – Jake
@Jake% s означает взять строку, а 35 - выровнять по правому краю до 35 символов. – sepp2k