prawn-arabic 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +10 -0
- data/lib/prawn-arabic.rb +192 -194
- metadata +16 -3
- data/lib/string_utf_support.rb +0 -730
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed5cb64794646322c328c48ded27528d28c99e9a
|
4
|
+
data.tar.gz: bdf83975cb435248cda5c501480dd84c0b7b1ae3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 371bcc79ff773b5686d30d1399fcc7a31f8d5190e39b1d3b0a7b1e03fd89c21c9f4e6c5817a9a5520992e881e2a28503cca54bbe7b783f6b0f290da025f809ba
|
7
|
+
data.tar.gz: 023cb5b3a9f64a028dd98eeda1f9e00cd47fe9609bf7572f3fc1d5fe4af6df795443796051b7858ca02036813535ce6a2737784bd54cabac55c22ca8bc6d7f4a
|
data/Rakefile
CHANGED
@@ -12,6 +12,16 @@ task :build do
|
|
12
12
|
system "gem build arabic-prawn.gemspec"
|
13
13
|
end
|
14
14
|
|
15
|
+
task :console do
|
16
|
+
begin
|
17
|
+
require 'pry'
|
18
|
+
gem_name = File.basename(Dir.pwd)
|
19
|
+
sh %{pry -I lib -r #{gem_name}.rb}
|
20
|
+
rescue LoadError => _
|
21
|
+
sh %{irb -rubygems -I lib -r #{gem_name}.rb}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
15
25
|
RDoc::Task.new do |rdoc|
|
16
26
|
files =['README', 'LICENSE', 'lib/**/*.rb']
|
17
27
|
rdoc.rdoc_files.add(files)
|
data/lib/prawn-arabic.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'string_utf_support'
|
2
|
-
|
3
1
|
class CharacterFormat
|
4
2
|
Isolated = 1
|
5
3
|
Initial = 2
|
@@ -14,12 +12,12 @@ class ArabicCharacterInfo
|
|
14
12
|
attr_accessor :common_encoding , :format_encodings, :is_connected
|
15
13
|
|
16
14
|
def initialize(common, isolated, final, initial, medial, is_connected)
|
17
|
-
@common_encoding = common
|
15
|
+
@common_encoding = common
|
18
16
|
@format_encodings = Hash.new
|
19
|
-
@format_encodings[CharacterFormat::Isolated] = isolated
|
20
|
-
@format_encodings[CharacterFormat::Initial] = initial
|
21
|
-
@format_encodings[CharacterFormat::Medial] = medial
|
22
|
-
@format_encodings[CharacterFormat::Final] = final
|
17
|
+
@format_encodings[CharacterFormat::Isolated] = isolated
|
18
|
+
@format_encodings[CharacterFormat::Initial] = initial
|
19
|
+
@format_encodings[CharacterFormat::Medial] = medial
|
20
|
+
@format_encodings[CharacterFormat::Final] = final
|
23
21
|
@is_connected = is_connected
|
24
22
|
end
|
25
23
|
|
@@ -33,378 +31,378 @@ class ArabicCharacterInfo
|
|
33
31
|
|
34
32
|
#Alef
|
35
33
|
new_character = ArabicCharacterInfo.new(
|
36
|
-
"
|
37
|
-
"
|
38
|
-
"
|
39
|
-
"
|
40
|
-
"
|
34
|
+
"\u0627", #Common
|
35
|
+
"\ufe8d", #Isolated
|
36
|
+
"\ufe8e", #Final
|
37
|
+
"\ufe8d", #Initial
|
38
|
+
"\ufe8e", #Medial
|
41
39
|
false)
|
42
40
|
map[new_character.common_encoding] = new_character
|
43
41
|
|
44
42
|
#Beh
|
45
43
|
new_character = ArabicCharacterInfo.new(
|
46
|
-
"
|
47
|
-
"
|
48
|
-
"
|
49
|
-
"
|
50
|
-
"
|
44
|
+
"\u0628", #Common
|
45
|
+
"\ufe8f", #Isolated
|
46
|
+
"\ufe90", #Final
|
47
|
+
"\ufe91", #Initial
|
48
|
+
"\ufe92", #Medial
|
51
49
|
true)
|
52
50
|
map[new_character.common_encoding] = new_character
|
53
51
|
|
54
52
|
#Teh
|
55
53
|
new_character = ArabicCharacterInfo.new(
|
56
|
-
"
|
57
|
-
"
|
58
|
-
"
|
59
|
-
"
|
60
|
-
"
|
54
|
+
"\u062a", #Common
|
55
|
+
"\ufe95", #Isolated
|
56
|
+
"\ufe96", #Final
|
57
|
+
"\ufe97", #Initial
|
58
|
+
"\ufe98", #Medial
|
61
59
|
true)
|
62
60
|
map[new_character.common_encoding] = new_character
|
63
61
|
|
64
62
|
#Theh
|
65
63
|
new_character = ArabicCharacterInfo.new(
|
66
|
-
"
|
67
|
-
"
|
68
|
-
"
|
69
|
-
"
|
70
|
-
"
|
64
|
+
"\u062b", #Common
|
65
|
+
"\ufe99", #Isolated
|
66
|
+
"\ufe9a", #Final
|
67
|
+
"\ufe9b", #Initial
|
68
|
+
"\ufe9c", #Medial
|
71
69
|
true)
|
72
70
|
map[new_character.common_encoding] = new_character
|
73
71
|
|
74
72
|
#Jeem
|
75
73
|
new_character = ArabicCharacterInfo.new(
|
76
|
-
"
|
77
|
-
"
|
78
|
-
"
|
79
|
-
"
|
80
|
-
"
|
74
|
+
"\u062c", #Common
|
75
|
+
"\ufe9d", #Isolated
|
76
|
+
"\ufe9e", #Final
|
77
|
+
"\ufe9f", #Initial
|
78
|
+
"\ufea0", #Medial
|
81
79
|
true)
|
82
80
|
map[new_character.common_encoding] = new_character
|
83
81
|
|
84
82
|
#7ah
|
85
83
|
new_character = ArabicCharacterInfo.new(
|
86
|
-
"
|
87
|
-
"
|
88
|
-
"
|
89
|
-
"
|
90
|
-
"
|
84
|
+
"\u062d", #Common
|
85
|
+
"\ufea1", #Isolated
|
86
|
+
"\ufea2", #Final
|
87
|
+
"\ufea3", #Initial
|
88
|
+
"\ufea4", #Medial
|
91
89
|
true)
|
92
90
|
map[new_character.common_encoding] = new_character
|
93
91
|
|
94
92
|
#7'ah
|
95
93
|
new_character = ArabicCharacterInfo.new(
|
96
|
-
"
|
97
|
-
"
|
98
|
-
"
|
99
|
-
"
|
100
|
-
"
|
94
|
+
"\u062e", #Common
|
95
|
+
"\ufea5", #Isolated
|
96
|
+
"\ufea6", #Final
|
97
|
+
"\ufea7", #Initial
|
98
|
+
"\ufea8", #Medial
|
101
99
|
true)
|
102
100
|
map[new_character.common_encoding] = new_character
|
103
101
|
|
104
102
|
#Dal
|
105
103
|
new_character = ArabicCharacterInfo.new(
|
106
|
-
"
|
107
|
-
"
|
108
|
-
"
|
109
|
-
"
|
110
|
-
"
|
104
|
+
"\u062f", #Common
|
105
|
+
"\ufea9", #Isolated
|
106
|
+
"\ufeaa", #Final
|
107
|
+
"\ufea9", #Initial
|
108
|
+
"\ufeaa", #Medial
|
111
109
|
false)
|
112
110
|
map[new_character.common_encoding] = new_character
|
113
111
|
|
114
112
|
#Thal
|
115
113
|
new_character = ArabicCharacterInfo.new(
|
116
|
-
"
|
117
|
-
"
|
118
|
-
"
|
119
|
-
"
|
120
|
-
"
|
114
|
+
"\u0630", #Common
|
115
|
+
"\ufeab", #Isolated
|
116
|
+
"\ufeac", #Final
|
117
|
+
"\ufeab", #Initial
|
118
|
+
"\ufeac", #Medial
|
121
119
|
false)
|
122
120
|
map[new_character.common_encoding] = new_character
|
123
121
|
|
124
122
|
#Rah
|
125
123
|
new_character = ArabicCharacterInfo.new(
|
126
|
-
"
|
127
|
-
"
|
128
|
-
"
|
129
|
-
"
|
130
|
-
"
|
124
|
+
"\u0631", #Common
|
125
|
+
"\ufead", #Isolated
|
126
|
+
"\ufeae", #Final
|
127
|
+
"\ufead", #Initial
|
128
|
+
"\ufeae", #Medial
|
131
129
|
false)
|
132
130
|
map[new_character.common_encoding] = new_character
|
133
131
|
|
134
132
|
#Zein
|
135
133
|
new_character = ArabicCharacterInfo.new(
|
136
|
-
"
|
137
|
-
"
|
138
|
-
"
|
139
|
-
"
|
140
|
-
"
|
134
|
+
"\u0632", #Common
|
135
|
+
"\ufeaf", #Isolated
|
136
|
+
"\ufeb0", #Final
|
137
|
+
"\ufeaf", #Initial
|
138
|
+
"\ufeb0", #Medial
|
141
139
|
false)
|
142
140
|
map[new_character.common_encoding] = new_character
|
143
141
|
|
144
142
|
#Seen
|
145
143
|
new_character = ArabicCharacterInfo.new(
|
146
|
-
"
|
147
|
-
"
|
148
|
-
"
|
149
|
-
"
|
150
|
-
"
|
144
|
+
"\u0633", #Common
|
145
|
+
"\ufeb1", #Isolated
|
146
|
+
"\ufeb2", #Final
|
147
|
+
"\ufeb3", #Initial
|
148
|
+
"\ufeb4", #Medial
|
151
149
|
true)
|
152
150
|
map[new_character.common_encoding] = new_character
|
153
151
|
|
154
152
|
#Sheen
|
155
153
|
new_character = ArabicCharacterInfo.new(
|
156
|
-
"
|
157
|
-
"
|
158
|
-
"
|
159
|
-
"
|
160
|
-
"
|
154
|
+
"\u0634", #Common
|
155
|
+
"\ufeb5", #Isolated
|
156
|
+
"\ufeb6", #Final
|
157
|
+
"\ufeb7", #Initial
|
158
|
+
"\ufeb8", #Medial
|
161
159
|
true)
|
162
160
|
map[new_character.common_encoding] = new_character
|
163
161
|
|
164
162
|
|
165
163
|
#Sad
|
166
164
|
new_character = ArabicCharacterInfo.new(
|
167
|
-
"
|
168
|
-
"
|
169
|
-
"
|
170
|
-
"
|
171
|
-
"
|
165
|
+
"\u0635", #Common
|
166
|
+
"\ufeb9", #Isolated
|
167
|
+
"\ufeba", #Final
|
168
|
+
"\ufebb", #Initial
|
169
|
+
"\ufebc", #Medial
|
172
170
|
true)
|
173
171
|
map[new_character.common_encoding] = new_character
|
174
172
|
|
175
173
|
|
176
174
|
#Dad
|
177
175
|
new_character = ArabicCharacterInfo.new(
|
178
|
-
"
|
179
|
-
"
|
180
|
-
"
|
181
|
-
"
|
182
|
-
"
|
176
|
+
"\u0636", #Common
|
177
|
+
"\ufebd", #Isolated
|
178
|
+
"\ufebe", #Final
|
179
|
+
"\ufebf", #Initial
|
180
|
+
"\ufec0", #Medial
|
183
181
|
true)
|
184
182
|
map[new_character.common_encoding] = new_character
|
185
183
|
|
186
184
|
|
187
185
|
#Tah
|
188
186
|
new_character = ArabicCharacterInfo.new(
|
189
|
-
"
|
190
|
-
"
|
191
|
-
"
|
192
|
-
"
|
193
|
-
"
|
187
|
+
"\u0637", #Common
|
188
|
+
"\ufec1", #Isolated
|
189
|
+
"\ufec2", #Final
|
190
|
+
"\ufec3", #Initial
|
191
|
+
"\ufec4", #Medial
|
194
192
|
true)
|
195
193
|
map[new_character.common_encoding] = new_character
|
196
194
|
|
197
195
|
#Thah
|
198
196
|
new_character = ArabicCharacterInfo.new(
|
199
|
-
"
|
200
|
-
"
|
201
|
-
"
|
202
|
-
"
|
203
|
-
"
|
197
|
+
"\u0638", #Common
|
198
|
+
"\ufec5", #Isolated
|
199
|
+
"\ufec6", #Final
|
200
|
+
"\ufec7", #Initial
|
201
|
+
"\ufec8", #Medial
|
204
202
|
true)
|
205
203
|
map[new_character.common_encoding] = new_character
|
206
204
|
|
207
205
|
#3ein
|
208
206
|
new_character = ArabicCharacterInfo.new(
|
209
|
-
"
|
210
|
-
"
|
211
|
-
"
|
212
|
-
"
|
213
|
-
"
|
207
|
+
"\u0639", #Common
|
208
|
+
"\ufec9", #Isolated
|
209
|
+
"\ufeca", #Final
|
210
|
+
"\ufecb", #Initial
|
211
|
+
"\ufecc", #Medial
|
214
212
|
true)
|
215
213
|
map[new_character.common_encoding] = new_character
|
216
214
|
|
217
215
|
|
218
216
|
#3'ein
|
219
217
|
new_character = ArabicCharacterInfo.new(
|
220
|
-
"
|
221
|
-
"
|
222
|
-
"
|
223
|
-
"
|
224
|
-
"
|
218
|
+
"\u063a", #Common
|
219
|
+
"\ufecd", #Isolated
|
220
|
+
"\ufece", #Final
|
221
|
+
"\ufecf", #Initial
|
222
|
+
"\ufed0", #Medial
|
225
223
|
true)
|
226
224
|
map[new_character.common_encoding] = new_character
|
227
225
|
|
228
226
|
#Feh
|
229
227
|
new_character = ArabicCharacterInfo.new(
|
230
|
-
"
|
231
|
-
"
|
232
|
-
"
|
233
|
-
"
|
234
|
-
"
|
228
|
+
"\u0641", #Common
|
229
|
+
"\ufed1", #Isolated
|
230
|
+
"\ufed2", #Final
|
231
|
+
"\ufed3", #Initial
|
232
|
+
"\ufed4", #Medial
|
235
233
|
true)
|
236
234
|
map[new_character.common_encoding] = new_character
|
237
235
|
|
238
236
|
|
239
237
|
#Qaf
|
240
238
|
new_character = ArabicCharacterInfo.new(
|
241
|
-
"
|
242
|
-
"
|
243
|
-
"
|
244
|
-
"
|
245
|
-
"
|
239
|
+
"\u0642", #Common
|
240
|
+
"\ufed5", #Isolated
|
241
|
+
"\ufed6", #Final
|
242
|
+
"\ufed7", #Initial
|
243
|
+
"\ufed8", #Medial
|
246
244
|
true)
|
247
245
|
map[new_character.common_encoding] = new_character
|
248
246
|
|
249
247
|
|
250
248
|
#Kaf
|
251
249
|
new_character = ArabicCharacterInfo.new(
|
252
|
-
"
|
253
|
-
"
|
254
|
-
"
|
255
|
-
"
|
256
|
-
"
|
250
|
+
"\u0643", #Common
|
251
|
+
"\ufed9", #Isolated
|
252
|
+
"\ufeda", #Final
|
253
|
+
"\ufedb", #Initial
|
254
|
+
"\ufedc", #Medial
|
257
255
|
true)
|
258
256
|
map[new_character.common_encoding] = new_character
|
259
257
|
|
260
258
|
#Lam
|
261
259
|
new_character = ArabicCharacterInfo.new(
|
262
|
-
"
|
263
|
-
"
|
264
|
-
"
|
265
|
-
"
|
266
|
-
"
|
260
|
+
"\u0644", #Common
|
261
|
+
"\ufedd", #Isolated
|
262
|
+
"\ufede", #Final
|
263
|
+
"\ufedf", #Initial
|
264
|
+
"\ufee0", #Medial
|
267
265
|
true)
|
268
266
|
map[new_character.common_encoding] = new_character
|
269
267
|
|
270
268
|
#Meem
|
271
269
|
new_character = ArabicCharacterInfo.new(
|
272
|
-
"
|
273
|
-
"
|
274
|
-
"
|
275
|
-
"
|
276
|
-
"
|
270
|
+
"\u0645", #Common
|
271
|
+
"\ufee1", #Isolated
|
272
|
+
"\ufee2", #Final
|
273
|
+
"\ufee3", #Initial
|
274
|
+
"\ufee4", #Medial
|
277
275
|
true)
|
278
276
|
map[new_character.common_encoding] = new_character
|
279
277
|
|
280
278
|
#Noon
|
281
279
|
new_character = ArabicCharacterInfo.new(
|
282
|
-
"
|
283
|
-
"
|
284
|
-
"
|
285
|
-
"
|
286
|
-
"
|
280
|
+
"\u0646", #Common
|
281
|
+
"\ufee5", #Isolated
|
282
|
+
"\ufee6", #Final
|
283
|
+
"\ufee7", #Initial
|
284
|
+
"\ufee8", #Medial
|
287
285
|
true)
|
288
286
|
map[new_character.common_encoding] = new_character
|
289
287
|
|
290
288
|
#Heh
|
291
289
|
new_character = ArabicCharacterInfo.new(
|
292
|
-
"
|
293
|
-
"
|
294
|
-
"
|
295
|
-
"
|
296
|
-
"
|
290
|
+
"\u0647", #Common
|
291
|
+
"\ufee9", #Isolated
|
292
|
+
"\ufeea", #Final
|
293
|
+
"\ufeeb", #Initial
|
294
|
+
"\ufeec", #Medial
|
297
295
|
true)
|
298
296
|
map[new_character.common_encoding] = new_character
|
299
297
|
|
300
298
|
#Waw
|
301
299
|
new_character = ArabicCharacterInfo.new(
|
302
|
-
"
|
303
|
-
"
|
304
|
-
"
|
305
|
-
"
|
306
|
-
"
|
300
|
+
"\u0648", #Common
|
301
|
+
"\ufeed", #Isolated
|
302
|
+
"\ufeee", #Final
|
303
|
+
"\ufeed", #Initial
|
304
|
+
"\ufeee", #Medial
|
307
305
|
false)
|
308
306
|
map[new_character.common_encoding] = new_character
|
309
307
|
|
310
308
|
#Yeh
|
311
309
|
new_character = ArabicCharacterInfo.new(
|
312
|
-
"
|
313
|
-
"
|
314
|
-
"
|
315
|
-
"
|
316
|
-
"
|
310
|
+
"\u064a", #Common
|
311
|
+
"\ufef1", #Isolated
|
312
|
+
"\ufef2", #Final
|
313
|
+
"\ufef3", #Initial
|
314
|
+
"\ufef4", #Medial
|
317
315
|
true)
|
318
316
|
map[new_character.common_encoding] = new_character
|
319
317
|
|
320
318
|
#Hamza
|
321
319
|
new_character = ArabicCharacterInfo.new(
|
322
|
-
"
|
323
|
-
"
|
324
|
-
"
|
325
|
-
"
|
326
|
-
"
|
320
|
+
"\u0621", #Common
|
321
|
+
"\ufe80", #Isolated
|
322
|
+
"\ufe80", #Final
|
323
|
+
"\ufe80", #Initial
|
324
|
+
"\ufe80", #Medial
|
327
325
|
false)
|
328
326
|
map[new_character.common_encoding] = new_character
|
329
327
|
|
330
328
|
|
331
329
|
# Alef Madda
|
332
330
|
new_character = ArabicCharacterInfo.new(
|
333
|
-
"
|
334
|
-
"
|
335
|
-
"
|
336
|
-
"
|
337
|
-
"
|
331
|
+
"\u0622", #Common
|
332
|
+
"\ufe81", #Isolated
|
333
|
+
"\ufe82", #Final
|
334
|
+
"\ufe81", #Initial
|
335
|
+
"\ufe82", #Medial
|
338
336
|
false)
|
339
337
|
map[new_character.common_encoding] = new_character
|
340
338
|
|
341
339
|
# Alef Hamza Above
|
342
340
|
new_character = ArabicCharacterInfo.new(
|
343
|
-
"
|
344
|
-
"
|
345
|
-
"
|
346
|
-
"
|
347
|
-
"
|
341
|
+
"\u0623", #Common
|
342
|
+
"\ufe83", #Isolated
|
343
|
+
"\ufe84", #Final
|
344
|
+
"\ufe83", #Initial
|
345
|
+
"\ufe84", #Medial
|
348
346
|
false)
|
349
347
|
map[new_character.common_encoding] = new_character
|
350
348
|
|
351
349
|
# Waw Hamza
|
352
350
|
new_character = ArabicCharacterInfo.new(
|
353
|
-
"
|
354
|
-
"
|
355
|
-
"
|
356
|
-
"
|
357
|
-
"
|
351
|
+
"\u0624", #Common
|
352
|
+
"\ufe85", #Isolated
|
353
|
+
"\ufe86", #Final
|
354
|
+
"\ufe85", #Initial
|
355
|
+
"\ufe86", #Medial
|
358
356
|
false)
|
359
357
|
map[new_character.common_encoding] = new_character
|
360
358
|
|
361
359
|
# Alef Hamza Below
|
362
360
|
new_character = ArabicCharacterInfo.new(
|
363
|
-
"
|
364
|
-
"
|
365
|
-
"
|
366
|
-
"
|
367
|
-
"
|
361
|
+
"\u0625", #Common
|
362
|
+
"\ufe87", #Isolated
|
363
|
+
"\ufe88", #Final
|
364
|
+
"\ufe87", #Initial
|
365
|
+
"\ufe88", #Medial
|
368
366
|
false)
|
369
367
|
map[new_character.common_encoding] = new_character
|
370
368
|
|
371
369
|
# Yeh Hamza
|
372
370
|
new_character = ArabicCharacterInfo.new(
|
373
|
-
"
|
374
|
-
"
|
375
|
-
"
|
376
|
-
"
|
377
|
-
"
|
371
|
+
"\u0626", #Common
|
372
|
+
"\ufe89", #Isolated
|
373
|
+
"\ufe8a", #Final
|
374
|
+
"\ufe8b", #Initial
|
375
|
+
"\ufe8c", #Medial
|
378
376
|
true)
|
379
377
|
map[new_character.common_encoding] = new_character
|
380
378
|
|
381
379
|
# Teh Marbuta
|
382
380
|
new_character = ArabicCharacterInfo.new(
|
383
|
-
"
|
384
|
-
"
|
385
|
-
"
|
386
|
-
"
|
387
|
-
"
|
381
|
+
"\u0629", #Common
|
382
|
+
"\ufe93", #Isolated
|
383
|
+
"\ufe94", #Final
|
384
|
+
"\ufe93", #Initial
|
385
|
+
"\ufe94", #Medial
|
388
386
|
false)
|
389
387
|
map[new_character.common_encoding] = new_character
|
390
388
|
|
391
389
|
# Tatweel
|
392
390
|
new_character = ArabicCharacterInfo.new(
|
393
|
-
"
|
394
|
-
"
|
395
|
-
"
|
396
|
-
"
|
397
|
-
"
|
391
|
+
"\u0640", #Common
|
392
|
+
"\u0640", #Isolated
|
393
|
+
"\u0640", #Final
|
394
|
+
"\u0640", #Initial
|
395
|
+
"\u0640", #Medial
|
398
396
|
true)
|
399
397
|
map[new_character.common_encoding] = new_character
|
400
398
|
|
401
399
|
# Alef Layyena
|
402
400
|
new_character = ArabicCharacterInfo.new(
|
403
|
-
"
|
404
|
-
"
|
405
|
-
"
|
406
|
-
"
|
407
|
-
"
|
401
|
+
"\u0649", #Common
|
402
|
+
"\ufeef", #Isolated
|
403
|
+
"\ufef0", #Final
|
404
|
+
"\ufeef", #Initial
|
405
|
+
"\ufef0", #Medial
|
408
406
|
false)
|
409
407
|
map[new_character.common_encoding] = new_character
|
410
408
|
|
@@ -460,7 +458,7 @@ class String
|
|
460
458
|
previous_letter = ''
|
461
459
|
before_previous_letter = ''
|
462
460
|
|
463
|
-
self.
|
461
|
+
self.chars {|c|
|
464
462
|
|
465
463
|
if previous_letter != ''
|
466
464
|
|
@@ -488,7 +486,7 @@ class String
|
|
488
486
|
end
|
489
487
|
|
490
488
|
if is_arabic
|
491
|
-
return connected_arabic.
|
489
|
+
return connected_arabic.reverse
|
492
490
|
else
|
493
491
|
return connected_arabic
|
494
492
|
end
|