Class: Persian::NumText
Overview
Persian NumText class Work with number in words
Constant Summary
Constants inherited from Number
Persian::Number::AR_EN_NUM, Persian::Number::AR_FA_NUM, Persian::Number::DECIMAL, Persian::Number::EN_AR_NUM, Persian::Number::EN_FA_NUM, Persian::Number::FA_AR_NUM, Persian::Number::FA_EN_NUM, Persian::Number::HUNDREDS, Persian::Number::LONGSCALE, Persian::Number::ONES, Persian::Number::TEENS
Constants included from Alphabet
Alphabet::AA, Alphabet::ALEF, Alphabet::ALEF_MAD, Alphabet::AN, Alphabet::ARBE, Alphabet::ATHNAN, Alphabet::BE, Alphabet::BEALAVE, Alphabet::CHAHAR, Alphabet::CHE, Alphabet::DAL, Alphabet::DARSAD, Alphabet::DONOGHTE, Alphabet::DOW, Alphabet::EE, Alphabet::EIGHT, Alphabet::EIN, Alphabet::EN, Alphabet::FE, Alphabet::FIVE, Alphabet::FOUR, Alphabet::GAF, Alphabet::GHEIN, Alphabet::HAFT, Alphabet::HASHT, Alphabet::HE_DOCHESHM, Alphabet::HE_JIMI, Alphabet::JIM, Alphabet::KAF, Alphabet::KAF_ARABIC, Alphabet::KESH, Alphabet::KHAMSE, Alphabet::KHE, Alphabet::LAM, Alphabet::LAYS, Alphabet::MAD, Alphabet::MENHA, Alphabet::MIM, Alphabet::MOSAVI, Alphabet::NINE, Alphabet::NOGHTE, Alphabet::NOGHTEVIRGOOL, Alphabet::NOH, Alphabet::NOON, Alphabet::ON, Alphabet::ONE, Alphabet::OO, Alphabet::PANJ, Alphabet::PE, Alphabet::QAF, Alphabet::RE, Alphabet::SABE, Alphabet::SAD, Alphabet::SAKEN, Alphabet::SE, Alphabet::SEFR, Alphabet::SETE, Alphabet::SEVEN, Alphabet::SHESH, Alphabet::SHIN, Alphabet::SIFR, Alphabet::SIN, Alphabet::SIX, Alphabet::SOAL, Alphabet::SPACE, Alphabet::TA, Alphabet::TAAJOB, Alphabet::TAGHSIM, Alphabet::TASHDID, Alphabet::TE, Alphabet::THALETH, Alphabet::THE, Alphabet::THMANY, Alphabet::THREE, Alphabet::TWO, Alphabet::VAV, Alphabet::VIRGOOL, Alphabet::WAHID, Alphabet::YE, Alphabet::YEK, Alphabet::YE_ARABIC, Alphabet::ZA, Alphabet::ZAD, Alphabet::ZAL, Alphabet::ZARBDAR, Alphabet::ZE, Alphabet::ZERO, Alphabet::ZHE, Alphabet::ZWJ, Alphabet::ZWNJ
Class Method Summary collapse
Methods inherited from Number
#*, #+, #-, #/, #initialize, number, number_with_colon, random, to_arabic, to_english, to_i, to_persian
Constructor Details
This class inherits a constructor from Persian::Number
Class Method Details
.num_to_char(num, inner = false) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/persian/num_text.rb', line 8 def self.num_to_char(num, inner = false) num = Persian::Number.number(num, lang: 'en', return: 'int') if num.is_a? String words = '' if ((num / 100) >= 0) && ((num / 100) < 10) if num < 10 if num.zero? && inner words += '' elsif inner words += ' و ' words += ONES[num] else words += ONES[num] end elsif num < 20 words += TEENS[num - 10] elsif num < 100 words += ' و ' if inner words += DECIMAL[num / 10] + num_to_char(num % 10, true) else words += ' و ' if inner words += HUNDREDS[num / 100] + num_to_char(num % 100, true) end else words += ' و ' if inner if (num.to_s.length % 3).nonzero? current_split = num.to_s[0..(num.to_s.length % 3 - 1).to_i] more_split = num.to_s.sub(current_split, '') words += num_to_char(current_split) + ' ' + LONGSCALE[(num.to_s.length / 3)] + num_to_char(more_split, true) else current_split = num.to_s[0..2] more_split = num.to_s.sub(current_split, '') words += num_to_char(current_split) + ' ' + LONGSCALE[(num.to_s.length / 3) - 1] + num_to_char(more_split, true) end end words end |