привет дневник, сегодня увидел интересный код и решил записать себе на долгую память где то на месяц, пока оплачен хостинг:)

в общем вывести какое либо число с нулями в переди. первая и вторая запись делают одно и тоже

a= format("%04d",2+1)
p a
p "0002".succ

а так же как сложить или перемножить все элементы цикла

def persistence(n)
  m=0
  while n.to_s.length!=1 do
    n=n.to_s.chars.map{|x|  x.to_i}.reduce(:*)
     m+=1
  end
  m
end

задачка 4 кю кодеварса, составить рейтинг трех популярных слов из текста, игнорируя точки, запятые, слеши, все в нижнем регистре. Вот мое

def top_3_words(text)
mas={}
text.downcase.split(/[,.\/']{0,}\s{1,}[,.'\/]{0,}/).reject(&:empty?).each{|x| mas[x]=mas[x].to_i+1}
mas.sort{|a,b| a[1] <=> b[1]}.reverse[0..2].map{|x,y| x}
end

А вот бес практис

def top_3_words(text)
  text.scan(/[A-Za-z']+/)
      .select { |x| /[A-Za-z]+/ =~ x }
      .group_by { |x| x.downcase }
      .sort_by { |k,v| -v.count }
      .first(3)
      .map(&:first)
end