Number to human : chiffre en lettre en ruby avec rubyonrails

Bon voilà dans rubyonrails, il y a un helper : number_to_human, qui est bien intéressant :

https://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_to_human

Il utilise locale pour la langue (français, anglais, ...), donc avec un petit script on peut faire une conversion de nombre en français en ruby :

chiffre="2235516516516"
caption = []
i = 0
chiffre.each_char do |c|
  mavar = ActionView::Base.new.number_to_human(chiffre[i..chiffre.length].to_i,
  :precision => 6,
  :significant => false,
  :locale => :fr)
  mavar = mavar.pluralize if c.to_i > 1
  caption << mavar.gsub(/,(\d+)/, "")
  i += mavar[/(\d+)/].length
  break if i >= chiffre.length
end
caption.join(" ")