String.class_eval do

 # This thing calculates IBAN for Czech/Slovak accounts.
 # Please note that garbage in means garbage out.
 #
 # Author:: Jirka Pech
 # Copyright:: 1core, s.r.o.

 def iban(i_country = 'CZ')
   # Garbage in means garbage out, so you should check what you are doing.
   country = i_country.upcase
   bankaccount, bankcode = self.tr(' ', '').tr('-', '').split('/')
   x_account = bankcode.rjust(4, '0') + bankaccount.rjust(16, '0') \
        + (country[0].to_i - 55).to_s + (country[1].to_i - 55).to_s + '00'

   country + (98 - x_account.to_i % 97).to_s.rjust(2, '0') + x_account[0..19]
 end
end
