number_to_arabic_word 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 95cc5204186e4a4c52034bd8e0c439e25789f2d6
4
+ data.tar.gz: ce2370b37fd8c412a71ed7b98ae4e5cac7fb2f26
5
+ SHA512:
6
+ metadata.gz: 96a60df6691c429463181925b0d9ee9e9857ab2d7d9dbe9089e2f23dd250640b041e6fbd3f0c9dc9e13b896cf2a03f5c927aa6b01379a695883b39fd8ae41b6f
7
+ data.tar.gz: ba1804d5f3aa4b3fc7b19b4bcea31dc9f06d498588e63697ed4bf84b417c0d09d028fbb93bed8ce072046cd32ea1f498fa248cad56cb693e84b32cada3bbcf56
@@ -0,0 +1,196 @@
1
+ require "number_to_arabic_word/version"
2
+
3
+ module NumberToArabicWord
4
+ # Your code goes here...
5
+ def self.process(num)
6
+ # TODO: process `str`
7
+ composite_num = num.to_i.to_s
8
+ case composite_num.length.to_s
9
+ when "1"
10
+ return convert_one_digits(composite_num)
11
+ when "2"
12
+ return convert_two_digits(composite_num)
13
+ when "3"
14
+ return convert_three_digits(composite_num)
15
+ when "4"
16
+ return convert_four_digits(composite_num)
17
+ when "5"
18
+ return convert_five_digits(composite_num)
19
+ when "6"
20
+ return convert_six_digits(composite_num)
21
+ end
22
+ end
23
+ def self.convert_one_digits(number)
24
+ alpha = ''
25
+ case number.to_s
26
+ when "1"
27
+ alpha = "واحد"
28
+ when "2"
29
+ alpha = "إثنان"
30
+ when "3"
31
+ alpha = "ثلاثه"
32
+ when "4"
33
+ alpha = "أربعه"
34
+ when "5"
35
+ alpha = "خمسه"
36
+ when "6"
37
+ alpha = "سته"
38
+ when "7"
39
+ alpha = "سبعه"
40
+ when "8"
41
+ alpha = "ثمانيه"
42
+ when "9"
43
+ alpha = "تسعه"
44
+ end
45
+ return alpha
46
+ end
47
+ def self.convert_two_digits(decimal_factor)
48
+ return_alpha = "00"
49
+ if decimal_factor.to_s[0,1].to_s == '0' and decimal_factor.to_s[1,1].to_s == '1'
50
+ convert_one_digits(decimal_factor.to_s[1,1])
51
+ else
52
+ case decimal_factor.to_s[0,1].to_s
53
+ when "1"
54
+ if decimal_factor.to_s[1,1].to_s == '1'
55
+ return "إحدى عشر"
56
+ elsif decimal_factor.to_s[1,1].to_s == '2'
57
+ return "إثنى عشر"
58
+ else
59
+ return convert_one_digits(decimal_factor.to_s[1,1].to_s) + " " + "عشر"
60
+ end
61
+ when "2"
62
+ return_alpha = "عشرون"
63
+ when "3"
64
+ return_alpha = "ثلاثون"
65
+ when "4"
66
+ return_alpha = "أربعون"
67
+ when "5"
68
+ return_alpha = "خمسون"
69
+ when "6"
70
+ return_alpha = "ستون"
71
+ when "7"
72
+ return_alpha = "سبعون"
73
+ when "8"
74
+ return_alpha = "ثمانون"
75
+ when "9"
76
+ return_alpha = "تسعون"
77
+ end
78
+ end
79
+ if ((convert_one_digits(decimal_factor.to_s[1,1].to_s)).length == 0)
80
+ return return_alpha
81
+ else
82
+ return_alpha = convert_one_digits(decimal_factor.to_s[1,1].to_s) + " و " + return_alpha
83
+ end
84
+ return return_alpha
85
+ end
86
+ def self.convert_three_digits(decimal_factor)
87
+ return_alpha = ''
88
+ case decimal_factor.to_s[0,1].to_i
89
+ when 1
90
+ if (decimal_factor.to_s[1,1].to_s == '0')
91
+ if (decimal_factor.to_s[2,1].to_s == '0')
92
+ return_alpha = "مائه"
93
+ else
94
+ return ("مائه" + " و " + convert_one_digits(decimal_factor.to_s[2,1].to_s))
95
+ end
96
+ else
97
+ return ("مائه" + " و " + convert_two_digits(decimal_factor.to_s[1, 3]))
98
+ end
99
+
100
+ when 2
101
+ if (decimal_factor.to_s[1,1].to_s == '0')
102
+ if (decimal_factor.to_s[2,1].to_s == '0')
103
+ return "مائتين"
104
+ else
105
+ return ("مائتين" + " و " + convert_one_digits(decimal_factor.to_s[2,1].to_s))
106
+ end
107
+ else
108
+ return ("مائتين" + " و " + convert_two_digits(decimal_factor.to_s[1, 3]))
109
+ end
110
+ when 3..9
111
+ if (decimal_factor.to_s[1,1].to_s == '0')
112
+ if (decimal_factor.to_s[2,1].to_s == '0')
113
+ return (convert_one_digits(decimal_factor.to_s[0,1]) + " مائه " )
114
+ else
115
+ return (convert_one_digits(decimal_factor[0,1]).to_s + " مائه " + " و " + convert_one_digits(decimal_factor[0,1]).to_s)
116
+ end
117
+ else
118
+ return (convert_one_digits(decimal_factor[0,1]).to_s + " مائه " + " و " + convert_two_digits(decimal_factor[1,3]).to_s)
119
+ end
120
+ when 0
121
+ if (decimal_factor.to_s[1,1].to_s == '0')
122
+ if (decimal_factor.to_s[2,1].to_s == '0')
123
+ return " "
124
+ else
125
+ return convert_one_digits(decimal_factor.to_s[2,1].to_s)
126
+ end
127
+ else
128
+ return convert_two_digits(decimal_factor[1,3].to_s)
129
+ end
130
+ end
131
+ return return_alpha
132
+ end
133
+ def self.convert_four_digits(decimal_factor)
134
+ return_alpha = ''
135
+ case decimal_factor.to_s[0,1].to_i
136
+ when 1
137
+ if (decimal_factor.to_s[1,1].to_s == '0')
138
+ if (decimal_factor.to_s[2,1].to_s == '0')
139
+ if (decimal_factor.to_s[3,1].to_s == '0')
140
+ return "ألف"
141
+ else
142
+ return ("ألف" + " و " + convert_one_digits(decimal_factor[3,1]).to_s)
143
+ end
144
+ else
145
+ return ("ألف" + " و " + convert_two_digits(decimal_factor[2, 3]).to_s)
146
+ end
147
+ else
148
+ return ("ألف" + " و " + convert_three_digits(decimal_factor[1, 4]).to_s)
149
+ end
150
+
151
+ when 2
152
+ if (decimal_factor.to_s[1,1].to_s == '0')
153
+ if (decimal_factor.to_s[2,1].to_s == '0')
154
+ if (decimal_factor.to_s[3,1].to_s == '0')
155
+ return "ألفين"
156
+ else
157
+ return "ألفين" + " و " + convert_one_digits(decimal_factor[3,1]).to_s
158
+ end
159
+ else
160
+ return "ألفين" + " و " + convert_two_digits(decimal_factor[2, 3]).to_s
161
+ end
162
+ else
163
+ return "ألفين" + " و " + convert_three_digits(decimal_factor[1, 4]).to_s
164
+ end
165
+ when 3..9
166
+ if (decimal_factor.to_s[1,1].to_s == '0')
167
+ if (decimal_factor.to_s[2,1].to_s == '0')
168
+ if (decimal_factor.to_s[3,1].to_s == '0')
169
+ return convert_one_digits(decimal_factor[0,1]).to_s + " ألاف"
170
+ else
171
+ return convert_one_digits(decimal_factor[0,1]).to_s + " ألاف" + " و " + convert_one_digits(decimal_factor.to_s[3,1]).to_s
172
+ end
173
+ else
174
+ return convert_one_digits(decimal_factor[0,1]).to_s + " ألاف" + " و " + convert_two_digits(decimal_factor[2, 3]).to_s
175
+ end
176
+ else
177
+ return convert_one_digits(decimal_factor[0,1]).to_s + " ألاف" + " و " + convert_three_digits(decimal_factor[1,4]).to_s
178
+ end
179
+ end
180
+ end
181
+ def self.convert_five_digits(decimal_factor)
182
+ if ((convert_three_digits(decimal_factor[2, 5])).length== 0)
183
+ return (convert_two_digits(decimal_factor[0, 2]) + " ألف ")
184
+ else
185
+ return (convert_two_digits(decimal_factor[0, 2]).to_s + " ألفا " + " و " + convert_three_digits(decimal_factor[2, 5]).to_s)
186
+ end
187
+ end
188
+ def self.convert_six_digits(decimal_factor)
189
+ if ((convert_three_digits(decimal_factor[2, 5])).length== 0)
190
+ return (convert_three_digits(decimal_factor[0, 3]) + " ألف ")
191
+ else
192
+ return (convert_three_digits(decimal_factor[0, 3]) + " ألفا " + " و " + convert_three_digits(decimal_factor[3, 6]))
193
+ end
194
+ end
195
+
196
+ end
@@ -0,0 +1,3 @@
1
+ module NumberToArabicWord
2
+ VERSION = "0.1.0"
3
+ end
metadata ADDED
@@ -0,0 +1,90 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: number_to_arabic_word
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - khamroddin
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-11-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.17'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.17'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description: number_to_arabic_word is gem which convert numeric number to arabic string
56
+ upto 6 digits
57
+ email:
58
+ - khamar.md@gmail.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - lib/number_to_arabic_word.rb
64
+ - lib/number_to_arabic_word/version.rb
65
+ homepage: ''
66
+ licenses:
67
+ - MIT
68
+ metadata: {}
69
+ post_install_message:
70
+ rdoc_options: []
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ requirements: []
84
+ rubyforge_project:
85
+ rubygems_version: 2.5.1
86
+ signing_key:
87
+ specification_version: 4
88
+ summary: number_to_arabic_word is gem which convert numeric number to arabic string
89
+ upto 6 digits
90
+ test_files: []