priehlazx 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.en.md +35 -0
- data/README.md +28 -13
- data/bin/{priehlahq → priehlag} +0 -0
- data/lib/priehlazx.rb +43 -43
- data/lib//320/277/321/200/321/243/321/205/320/273/320/260/320/266/321/214.rb +43 -43
- data/lib//320/277/321/200/321/243/321/205/320/273/320/260/320/266/321/214/version.rb +1 -1
- data/priehlazx.gemspec +2 -2
- data/share/HIP./321/201/320/272/321/201 +2 -2
- data/share/TR-CYR./321/201/320/272/321/201 +2 -2
- data/share/UCS8./321/201/320/272/321/201 +1 -1
- data/share/UTF8./321/201/320/272/321/201 +10 -7
- metadata +13 -14
data/README.en.md
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# Priehlazx
|
2
|
+
|
3
|
+
Text converting utility. Now supports the following codepages:
|
4
|
+
* UCS8 - Unified 8-bit church-slavonic codepage;
|
5
|
+
* UTF8 - 8-bit coding that uses multi-byte sequences;
|
6
|
+
* UTF8/HIP - Invariant representation of church, old-slavic, and old-greek texts, based on UTF 8-bit coding;
|
7
|
+
* UTF8/TR-CYR - Russian translit coding, based on UTF 8-bit coding;
|
8
|
+
* UTF8/TR-CYR-S - Simplified russian translit coding, based on UTF 8-bit coding;
|
9
|
+
|
10
|
+
## Console software
|
11
|
+
|
12
|
+
$ priehlag --help
|
13
|
+
Usage: priehlag [OPTIONS]
|
14
|
+
|
15
|
+
Mandatory arguments to long options are mandatory for short options too.
|
16
|
+
-i, --input-file=val Input file to convert
|
17
|
+
--, --stdin-input Read standard input to convert
|
18
|
+
-o, --output-file=val Output file to convert
|
19
|
+
-I, --input-string=val Input string to convert
|
20
|
+
-c, --codepage=val Target (and source) code page(s) separated with signs '<' or '>'
|
21
|
+
-w, --acquire-word-regexp=val Acquire RegExp for the code page
|
22
|
+
-r, --acquire-regexp=val Acquire RegExp for the code page
|
23
|
+
-l, --list-codepages List available codepages and exit
|
24
|
+
-d, --set-debug-info-level=val Set debug information log level
|
25
|
+
|
26
|
+
-h, --help Show this help message.
|
27
|
+
|
28
|
+
Обычный запускъ таковъ есть:
|
29
|
+
|
30
|
+
$ priehlag -I "Во о_у='трiй же ви'дjь _i=wа'ннъ _i=и~са гряду'ща къ себjь\`, и= глаго'ла: се\` а='гнецъ бж~iй, взе'мляй грjьхи\` м_i'ра" -c 'UTF8/HIP>UTF8'
|
31
|
+
Во ѹ҆́трїй же ви́дѣ ї҆ѡа́ннъ ї҆и҃са грѧдꙋ́ща къ себѣ̀, и҆ глаго́ла: сѐ а҆́гнецъ бж҃їй, взе́млѧй грѣхѝ мї́ра
|
32
|
+
|
33
|
+
## Copyright
|
34
|
+
|
35
|
+
Copyright (c) 2011 Malo Skrylevo. See LICENSE for details.
|
data/README.md
CHANGED
@@ -1,20 +1,35 @@
|
|
1
|
-
# Прехлагъ
|
1
|
+
# Прехлагъ
|
2
2
|
|
3
3
|
Текстопреобразующая программка и библіотека. Сейчасъ поддерживаетъ слѣдующія кодировки:
|
4
|
-
*
|
5
|
-
* UTF8
|
6
|
-
*
|
4
|
+
* UCS8 - Обобщённая 8-битная церковнославянская кодировка;
|
5
|
+
* UTF8 - 8-битная обобщенная кодировка, использующая многобайтныя послѣдовательности;
|
6
|
+
* UTF8/HIP - Независимое представленіе церковныхъ, древнеславянскихъ и древнегрѣческихъ текстовъ на основѣ 8-битной обобщенной кодировки;
|
7
|
+
* UTF8/TR-CYR - Представленіе кириллическихъ знаковъ латиницею на основѣ 8-битной обобщенной кодировки;
|
8
|
+
* UTF8/TR-CYR-S - Упрощённое представленіе кириллическихъ знаковъ латиницею на основѣ 8-битной обобщенной кодировки;
|
7
9
|
|
8
|
-
|
9
|
-
* UTF8
|
10
|
-
* UTF8/HIP
|
11
|
-
* UCS8
|
10
|
+
## Консольная программка
|
12
11
|
|
13
|
-
|
12
|
+
$ прѣхлагъ --help
|
13
|
+
Usage: прѣхлагъ [OPTIONS]
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
Mandatory arguments to long options are mandatory for short options too.
|
16
|
+
-i, --input-file=val Input file to convert
|
17
|
+
--, --stdin-input Read standard input to convert
|
18
|
+
-o, --output-file=val Output file to convert
|
19
|
+
-I, --input-string=val Input string to convert
|
20
|
+
-c, --codepage=val Target (and source) code page(s) separated with signs '<' or '>'
|
21
|
+
-w, --acquire-word-regexp=val Acquire RegExp for the code page
|
22
|
+
-r, --acquire-regexp=val Acquire RegExp for the code page
|
23
|
+
-l, --list-codepages List available codepages and exit
|
24
|
+
-d, --set-debug-info-level=val Set debug information log level
|
17
25
|
|
18
|
-
|
19
|
-
See LICENSE for details.
|
26
|
+
-h, --help Show this help message.
|
20
27
|
|
28
|
+
Обычный запускъ таковъ есть:
|
29
|
+
|
30
|
+
$ priehlag -I "Во о_у='трiй же ви'дjь _i=wа'ннъ _i=и~са гряду'ща къ себjь\`, и= глаго'ла: се\` а='гнецъ бж~iй, взе'мляй грjьхи\` м_i'ра" -c 'UTF8/HIP>UTF8'
|
31
|
+
Во ѹ҆́трїй же ви́дѣ ї҆ѡа́ннъ ї҆и҃са грѧдꙋ́ща къ себѣ̀, и҆ глаго́ла: сѐ а҆́гнецъ бж҃їй, взе́млѧй грѣхѝ мї́ра
|
32
|
+
|
33
|
+
## Права
|
34
|
+
|
35
|
+
Авторскія и исключительныя права (а) 2011 Малъ Скрылевъ. Зри LICENSE за подробностями.
|
data/bin/{priehlahq → priehlag}
RENAMED
File without changes
|
data/lib/priehlazx.rb
CHANGED
@@ -2,7 +2,9 @@
|
|
2
2
|
# encoding: UTF-8
|
3
3
|
|
4
4
|
require 'yaml'
|
5
|
-
require 'rdoba'
|
5
|
+
require 'rdoba/debug'
|
6
|
+
require 'rdoba/re'
|
7
|
+
require 'rdoba/combinations'
|
6
8
|
require 'прѣхлажь/version'
|
7
9
|
|
8
10
|
class Priehlazx
|
@@ -19,7 +21,7 @@ class Priehlazx
|
|
19
21
|
'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
|
20
22
|
't', 'u', 'v', 'w', 'x', 'y', 'z', 'Ꙇожъ', 'Ѕело', 'Ѕело зеркаль',
|
21
23
|
'Ѕело мягъ', 'Ѕело ꙁ', 'Азъ', 'Азъ инъ', 'Буки', 'Вѣдѣ', 'Гервь',
|
22
|
-
'Глаголь', 'Глаголь твердъ', 'Гье', 'Дже', '
|
24
|
+
'Глаголь', 'Глаголь твердъ', 'Гье', 'Дже', 'Дьже', 'Добро', 'Добро мягъ',
|
23
25
|
'Добро удлинь', 'Ере', 'Ери', 'Ери еръ', 'Ери еръ', 'Ери еръ съузь',
|
24
26
|
'Ери съузь', 'Ериі', 'Ериі еръ', 'Ериі еръ', 'Ериі еръ съузь',
|
25
27
|
'Ериі съузь', 'Еръ', 'Еръ высъ', 'Еры', 'Еры еръ', 'Еры еръ съузь',
|
@@ -42,7 +44,7 @@ class Priehlazx
|
|
42
44
|
'възметъ', 'возъгласъ', 'возъгласъ вель', 'восемь', 'вранъ',
|
43
45
|
'въводъ', 'вѣдѣ', 'гервь', 'глава Маркова', 'глаголь',
|
44
46
|
'глаголь твердъ', 'глаголь выносъ', 'гье', 'два', 'двоеточіе',
|
45
|
-
'девѧть', 'гервь выносъ', 'дже', 'добро', 'добро выносъ',
|
47
|
+
'девѧть', 'гервь выносъ', 'дже', 'дьже', 'добро', 'добро выносъ',
|
46
48
|
'добро мягъ', 'добро удлинь', 'дѣлитель', 'ере', 'ери', 'ери еръ съузь',
|
47
49
|
'ери съузь', 'ериі', 'ериі еръ съузь', 'ериі съузь', 'еръ', 'еръ высъ',
|
48
50
|
'еры', 'еры вынось', 'еры еръ', 'еры еръ съузь', 'еры съузь', 'ерь',
|
@@ -74,7 +76,7 @@ class Priehlazx
|
|
74
76
|
'семь', 'сирѣчь', 'скобка закрывающа', 'скобка изразьна закрывающа',
|
75
77
|
'скобка изразьна открывающа', 'скобка открывающа',
|
76
78
|
'скобка прямочерта закрывающа', 'скобка прямочерта открывающа', 'слово',
|
77
|
-
'слово выносъ', 'слово подстрочь', 'слово твердо выносъ',
|
79
|
+
'слово выносъ', 'слово подстрочь', 'слово твердо выносъ', 'смягъченіе',
|
78
80
|
'сотка', 'твердо', 'твердо выносъ', 'твердо высъ', 'твердо тревысъ',
|
79
81
|
'точька запята', 'точька', 'три',
|
80
82
|
'троеточіе одесну несоверше окружено',
|
@@ -86,7 +88,7 @@ class Priehlazx
|
|
86
88
|
'хѣръ выносъ', 'цы', 'цы въгнутъ', 'цы выносъ', 'цѧтокъ', 'червь',
|
87
89
|
'червь выносъ', 'червь чашевидь', 'черта', 'четыре', 'ша',
|
88
90
|
'ша выносъ', 'шта', 'шта въгнутъ', 'шесть',
|
89
|
-
'
|
91
|
+
'ща выносъ', 'ща', 'ынъ', 'это', 'юсъ', 'юсъ вель',
|
90
92
|
'юсъ вель выносъ', 'юсъ вель двуногъ', 'юсъ выносъ', 'юсъ зеркаль',
|
91
93
|
'юсъ кратъ', 'юсъ малъ', 'юсъ малъ выносъ', 'юсъ малъ подчёрчь',
|
92
94
|
'юсъ малъ подъчерчь', 'юсъ малъ прогнутъ', 'юсъ средь',
|
@@ -114,7 +116,7 @@ class Priehlazx
|
|
114
116
|
'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
|
115
117
|
't', 'u', 'v', 'w', 'x', 'y', 'z', 'Ꙇожъ', 'Ѕело', 'Ѕело зеркаль',
|
116
118
|
'Ѕело мягъ', 'Ѕело ꙁ', 'Азъ', 'Азъ инъ', 'Буки', 'Вѣдѣ', 'Гервь',
|
117
|
-
'Глаголь', 'Глаголь твердъ', 'Гье', 'Дже', '
|
119
|
+
'Глаголь', 'Глаголь твердъ', 'Гье', 'Дже', 'Дьже', 'Добро', 'Добро мягъ',
|
118
120
|
'Добро удлинь', 'Ере', 'Ери', 'Ери еръ', 'Ери еръ', 'Ери еръ съузь',
|
119
121
|
'Ери съузь', 'Ериі', 'Ериі еръ', 'Ериі еръ', 'Ериі еръ съузь',
|
120
122
|
'Ериі съузь', 'Еръ', 'Еръ высъ', 'Еры', 'Еры еръ', 'Еры еръ съузь',
|
@@ -134,7 +136,7 @@ class Priehlazx
|
|
134
136
|
'азъ', 'азъ инъ', 'буки',
|
135
137
|
'вѣдѣ', 'гервь', 'глава Маркова', 'глаголь',
|
136
138
|
'глаголь твердъ', 'гье',
|
137
|
-
'дже', 'добро',
|
139
|
+
'дже', 'дьже', 'добро',
|
138
140
|
'добро мягъ', 'добро удлинь', 'ере', 'ери', 'ери еръ съузь',
|
139
141
|
'ери съузь', 'ериі', 'ериі еръ съузь', 'ериі съузь', 'еръ', 'еръ высъ',
|
140
142
|
'еры', 'еры еръ', 'еры еръ съузь', 'еры съузь', 'ерь',
|
@@ -189,7 +191,7 @@ private
|
|
189
191
|
dbp24 "[яти_знаци]> съчета: #{съчета.inspect}"
|
190
192
|
нов_зн = ''
|
191
193
|
ли_зн_п = съчета.each do |а|
|
192
|
-
знаци_нн =
|
194
|
+
знаци_нн = @cp[:сѣтка][а.join(',')]
|
193
195
|
dbp22 "[яти_знаци]> знаци_нн: #{знаци_нн.inspect}"
|
194
196
|
if знаци_нн
|
195
197
|
цѣль_зн_п = знаци_нн.each do |знаци_н|
|
@@ -228,7 +230,7 @@ private
|
|
228
230
|
ширь_б = []
|
229
231
|
буквы = []
|
230
232
|
знаци = {}
|
231
|
-
|
233
|
+
@cp = { :ширь => ширь, :ширь_б => ширь_б,
|
232
234
|
:сѣтка => сѣтка, :имяна => [],
|
233
235
|
:буквы => буквы, :знаци => знаци,
|
234
236
|
:правило => {}, :правило_б => {},
|
@@ -258,10 +260,10 @@ private
|
|
258
260
|
dbp14 "------------"
|
259
261
|
dbp14 "#{кс_имя}"
|
260
262
|
|
261
|
-
|
262
|
-
|
263
|
+
@cp[:имяна] << кс_имя
|
264
|
+
@cp[:свойства][кс_имя] = {}
|
263
265
|
[ 'описаніе' ].each do |свойство|
|
264
|
-
|
266
|
+
@cp[:свойства][кс_имя][свойство.to_sym] = кс[свойство] if кс[свойство]
|
265
267
|
end
|
266
268
|
|
267
269
|
ширь_б_н = []
|
@@ -348,8 +350,8 @@ private
|
|
348
350
|
одинкы
|
349
351
|
end
|
350
352
|
|
351
|
-
|
352
|
-
|
353
|
+
@cp[:правило][кс_имя] = створи_правило(ширь[кс_i])
|
354
|
+
@cp[:правило_б][кс_имя] = створи_правило(ширь_б[кс_i])
|
353
355
|
|
354
356
|
буквы[кс_i] = {}
|
355
357
|
|
@@ -357,8 +359,8 @@ private
|
|
357
359
|
end; end
|
358
360
|
|
359
361
|
# разъкрытіе неѥдинныхъ знацей
|
360
|
-
|
361
|
-
dbp22 "Кодачица #{
|
362
|
+
@cp[:имяна].each_index do |кс_i|
|
363
|
+
dbp22 "Кодачица #{@cp[:имяна][кс_i]}"
|
362
364
|
сѣтка.each do |имя, знач_нн|
|
363
365
|
знач_нн.each do |знач_н|
|
364
366
|
next if знач_н[кс_i]
|
@@ -375,11 +377,11 @@ private
|
|
375
377
|
#сортировка слов по первой букве.
|
376
378
|
сѣтка.each do |имя, знач_нн|
|
377
379
|
знач_нн.each do |знач_н|
|
378
|
-
|
380
|
+
@cp[:имяна].each_index do |кс_i|
|
379
381
|
знач = знач_н[кс_i]
|
380
382
|
next unless знач
|
381
383
|
dbp24 "Значеніе #{знач.inspect} << #{знач_н.inspect}"
|
382
|
-
бук = знач.
|
384
|
+
бук = [ знач.unpack("U*")[0] ].pack("U*")
|
383
385
|
буквы[кс_i][бук] = {} unless буквы[кс_i][бук]
|
384
386
|
буквы[кс_i][бук][знач] = [] unless буквы[кс_i][бук][знач]
|
385
387
|
буквы[кс_i][бук][знач] << знач_н
|
@@ -397,28 +399,26 @@ private
|
|
397
399
|
|
398
400
|
public
|
399
401
|
|
400
|
-
def цѣль=(
|
401
|
-
cp =
|
402
|
-
|
403
|
-
@цѣль = cp
|
402
|
+
def цѣль=(кс)
|
403
|
+
if кс and @cp[:имяна].include?(кс = кс.to_sym)
|
404
|
+
@цѣль = кс
|
404
405
|
else
|
405
|
-
raise "Се ошибка: невѣсть къ цѣлева кодачица #{
|
406
|
+
raise "Се ошибка: невѣсть къ цѣлева кодачица #{кс}, кодачицы доступныя суть: #{@cp[:имяна].join(', ')}"
|
406
407
|
end
|
407
408
|
end
|
408
409
|
|
409
|
-
def истокъ=(
|
410
|
-
cp =
|
411
|
-
|
412
|
-
@истокъ = cp
|
410
|
+
def истокъ=(кс)
|
411
|
+
if кс and @cp[:имяна].include?(кс = кс.to_sym)
|
412
|
+
@истокъ = кс
|
413
413
|
else
|
414
|
-
raise "Се ошибка: невѣсть къ исходна кодачица #{
|
414
|
+
raise "Се ошибка: невѣсть къ исходна кодачица #{кс}, кодачицы доступныя суть: #{@cp[:имяна].join(', ')}"
|
415
415
|
end
|
416
416
|
end
|
417
417
|
|
418
418
|
def кодачицы
|
419
419
|
пл = {}
|
420
|
-
|
421
|
-
о =
|
420
|
+
@cp[:имяна].each do |име|
|
421
|
+
о = @cp[:свойства][име][:описаніе]
|
422
422
|
пл[име] = о[язы.to_s].to_s if о
|
423
423
|
end
|
424
424
|
пл
|
@@ -427,8 +427,8 @@ public
|
|
427
427
|
def кака_кода(писмя)
|
428
428
|
писмя = писмя.to_s
|
429
429
|
вѣса_сл = {}
|
430
|
-
|
431
|
-
шири =
|
430
|
+
@cp[:имяна].each_index do |кс_i|
|
431
|
+
шири = @cp[:ширь][кс_i]
|
432
432
|
|
433
433
|
matched = 0
|
434
434
|
unmatched = 0
|
@@ -438,7 +438,7 @@ public
|
|
438
438
|
end
|
439
439
|
end
|
440
440
|
|
441
|
-
вѣса_сл[
|
441
|
+
вѣса_сл[@cp[:имяна][кс_i]] = matched
|
442
442
|
end
|
443
443
|
вѣса = вѣса_сл.keys.sort do |ѯ,ѱ|
|
444
444
|
пл = вѣса_сл[ѱ] <=> вѣса_сл[ѯ]
|
@@ -451,17 +451,17 @@ public
|
|
451
451
|
def пръ_сл(кс)
|
452
452
|
return nil if кс.to_s.empty?
|
453
453
|
кс = кс.to_sym
|
454
|
-
return nil unless
|
454
|
+
return nil unless @cp[:имяна].include? кс
|
455
455
|
|
456
|
-
"[#{
|
456
|
+
"[#{@cp[:правило_б][кс]}]"
|
457
457
|
end
|
458
458
|
|
459
459
|
def пръ(кс)
|
460
460
|
return nil if кс.to_s.empty?
|
461
461
|
кс = кс.to_sym
|
462
|
-
return nil unless
|
462
|
+
return nil unless @cp[:имяна].include? кс
|
463
463
|
|
464
|
-
"[#{
|
464
|
+
"[#{@cp[:правило][кс]}]"
|
465
465
|
end
|
466
466
|
|
467
467
|
def [](str)
|
@@ -470,24 +470,24 @@ public
|
|
470
470
|
|
471
471
|
def ими(писмя, цѣль = @цѣль, истокъ = @истокъ)
|
472
472
|
self.цѣль = цѣль
|
473
|
-
цѣль_ѯ =
|
473
|
+
цѣль_ѯ = @cp[:имяна].index(@цѣль)
|
474
474
|
return nil unless цѣль_ѯ # TODO raise
|
475
475
|
|
476
476
|
писмя = писмя.to_s
|
477
477
|
истокъ = (истокъ || кака_кода(писмя)).to_sym
|
478
|
-
исх_ѯ =
|
478
|
+
исх_ѯ = @cp[:имяна].index(истокъ)
|
479
479
|
return nil unless исх_ѯ # TODO raise
|
480
480
|
|
481
|
-
return nil unless
|
481
|
+
return nil unless @cp[:сѣтка] # TODO raise
|
482
482
|
плодъ = ''
|
483
483
|
ѯ = 0
|
484
484
|
|
485
485
|
dbp22 "Знак: #{писмя.inspect}"
|
486
486
|
while писмя and not писмя.empty?
|
487
487
|
ѱ = 1
|
488
|
-
знк = писмя.
|
488
|
+
знк = [ писмя.unpack("U*")[0] ].pack("U*")
|
489
489
|
dbp22 "Знак: #{знк.inspect}"
|
490
|
-
реха =
|
490
|
+
реха = @cp[:буквы][исх_ѯ][знк]
|
491
491
|
|
492
492
|
if реха
|
493
493
|
dbp28 "Реха: #{реха.inspect}"
|
@@ -509,7 +509,7 @@ public
|
|
509
509
|
end
|
510
510
|
end
|
511
511
|
end
|
512
|
-
|
512
|
+
|
513
513
|
if (пл.class == Array) or (пл.class == String and пл =~ /\0/)
|
514
514
|
$stderr.puts "Вънми: Се знаць '#{знк}'(#{sprintf "ѯ%x", знк.ord})" +
|
515
515
|
" кодачицы #{истокъ} отъторжеся, бо нѣсть мощно прѣхложити и въ кодачицу #{цѣль}"
|
@@ -2,7 +2,9 @@
|
|
2
2
|
# encoding: UTF-8
|
3
3
|
|
4
4
|
require 'yaml'
|
5
|
-
require 'rdoba'
|
5
|
+
require 'rdoba/debug'
|
6
|
+
require 'rdoba/re'
|
7
|
+
require 'rdoba/combinations'
|
6
8
|
require 'прѣхлажь/version'
|
7
9
|
|
8
10
|
class Priehlazx
|
@@ -19,7 +21,7 @@ class Priehlazx
|
|
19
21
|
'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
|
20
22
|
't', 'u', 'v', 'w', 'x', 'y', 'z', 'Ꙇожъ', 'Ѕело', 'Ѕело зеркаль',
|
21
23
|
'Ѕело мягъ', 'Ѕело ꙁ', 'Азъ', 'Азъ инъ', 'Буки', 'Вѣдѣ', 'Гервь',
|
22
|
-
'Глаголь', 'Глаголь твердъ', 'Гье', 'Дже', '
|
24
|
+
'Глаголь', 'Глаголь твердъ', 'Гье', 'Дже', 'Дьже', 'Добро', 'Добро мягъ',
|
23
25
|
'Добро удлинь', 'Ере', 'Ери', 'Ери еръ', 'Ери еръ', 'Ери еръ съузь',
|
24
26
|
'Ери съузь', 'Ериі', 'Ериі еръ', 'Ериі еръ', 'Ериі еръ съузь',
|
25
27
|
'Ериі съузь', 'Еръ', 'Еръ высъ', 'Еры', 'Еры еръ', 'Еры еръ съузь',
|
@@ -42,7 +44,7 @@ class Priehlazx
|
|
42
44
|
'възметъ', 'возъгласъ', 'возъгласъ вель', 'восемь', 'вранъ',
|
43
45
|
'въводъ', 'вѣдѣ', 'гервь', 'глава Маркова', 'глаголь',
|
44
46
|
'глаголь твердъ', 'глаголь выносъ', 'гье', 'два', 'двоеточіе',
|
45
|
-
'девѧть', 'гервь выносъ', 'дже', 'добро', 'добро выносъ',
|
47
|
+
'девѧть', 'гервь выносъ', 'дже', 'дьже', 'добро', 'добро выносъ',
|
46
48
|
'добро мягъ', 'добро удлинь', 'дѣлитель', 'ере', 'ери', 'ери еръ съузь',
|
47
49
|
'ери съузь', 'ериі', 'ериі еръ съузь', 'ериі съузь', 'еръ', 'еръ высъ',
|
48
50
|
'еры', 'еры вынось', 'еры еръ', 'еры еръ съузь', 'еры съузь', 'ерь',
|
@@ -74,7 +76,7 @@ class Priehlazx
|
|
74
76
|
'семь', 'сирѣчь', 'скобка закрывающа', 'скобка изразьна закрывающа',
|
75
77
|
'скобка изразьна открывающа', 'скобка открывающа',
|
76
78
|
'скобка прямочерта закрывающа', 'скобка прямочерта открывающа', 'слово',
|
77
|
-
'слово выносъ', 'слово подстрочь', 'слово твердо выносъ',
|
79
|
+
'слово выносъ', 'слово подстрочь', 'слово твердо выносъ', 'смягъченіе',
|
78
80
|
'сотка', 'твердо', 'твердо выносъ', 'твердо высъ', 'твердо тревысъ',
|
79
81
|
'точька запята', 'точька', 'три',
|
80
82
|
'троеточіе одесну несоверше окружено',
|
@@ -86,7 +88,7 @@ class Priehlazx
|
|
86
88
|
'хѣръ выносъ', 'цы', 'цы въгнутъ', 'цы выносъ', 'цѧтокъ', 'червь',
|
87
89
|
'червь выносъ', 'червь чашевидь', 'черта', 'четыре', 'ша',
|
88
90
|
'ша выносъ', 'шта', 'шта въгнутъ', 'шесть',
|
89
|
-
'
|
91
|
+
'ща выносъ', 'ща', 'ынъ', 'это', 'юсъ', 'юсъ вель',
|
90
92
|
'юсъ вель выносъ', 'юсъ вель двуногъ', 'юсъ выносъ', 'юсъ зеркаль',
|
91
93
|
'юсъ кратъ', 'юсъ малъ', 'юсъ малъ выносъ', 'юсъ малъ подчёрчь',
|
92
94
|
'юсъ малъ подъчерчь', 'юсъ малъ прогнутъ', 'юсъ средь',
|
@@ -114,7 +116,7 @@ class Priehlazx
|
|
114
116
|
'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
|
115
117
|
't', 'u', 'v', 'w', 'x', 'y', 'z', 'Ꙇожъ', 'Ѕело', 'Ѕело зеркаль',
|
116
118
|
'Ѕело мягъ', 'Ѕело ꙁ', 'Азъ', 'Азъ инъ', 'Буки', 'Вѣдѣ', 'Гервь',
|
117
|
-
'Глаголь', 'Глаголь твердъ', 'Гье', 'Дже', '
|
119
|
+
'Глаголь', 'Глаголь твердъ', 'Гье', 'Дже', 'Дьже', 'Добро', 'Добро мягъ',
|
118
120
|
'Добро удлинь', 'Ере', 'Ери', 'Ери еръ', 'Ери еръ', 'Ери еръ съузь',
|
119
121
|
'Ери съузь', 'Ериі', 'Ериі еръ', 'Ериі еръ', 'Ериі еръ съузь',
|
120
122
|
'Ериі съузь', 'Еръ', 'Еръ высъ', 'Еры', 'Еры еръ', 'Еры еръ съузь',
|
@@ -134,7 +136,7 @@ class Priehlazx
|
|
134
136
|
'азъ', 'азъ инъ', 'буки',
|
135
137
|
'вѣдѣ', 'гервь', 'глава Маркова', 'глаголь',
|
136
138
|
'глаголь твердъ', 'гье',
|
137
|
-
'дже', 'добро',
|
139
|
+
'дже', 'дьже', 'добро',
|
138
140
|
'добро мягъ', 'добро удлинь', 'ере', 'ери', 'ери еръ съузь',
|
139
141
|
'ери съузь', 'ериі', 'ериі еръ съузь', 'ериі съузь', 'еръ', 'еръ высъ',
|
140
142
|
'еры', 'еры еръ', 'еры еръ съузь', 'еры съузь', 'ерь',
|
@@ -189,7 +191,7 @@ private
|
|
189
191
|
dbp24 "[яти_знаци]> съчета: #{съчета.inspect}"
|
190
192
|
нов_зн = ''
|
191
193
|
ли_зн_п = съчета.each do |а|
|
192
|
-
знаци_нн =
|
194
|
+
знаци_нн = @cp[:сѣтка][а.join(',')]
|
193
195
|
dbp22 "[яти_знаци]> знаци_нн: #{знаци_нн.inspect}"
|
194
196
|
if знаци_нн
|
195
197
|
цѣль_зн_п = знаци_нн.each do |знаци_н|
|
@@ -228,7 +230,7 @@ private
|
|
228
230
|
ширь_б = []
|
229
231
|
буквы = []
|
230
232
|
знаци = {}
|
231
|
-
|
233
|
+
@cp = { :ширь => ширь, :ширь_б => ширь_б,
|
232
234
|
:сѣтка => сѣтка, :имяна => [],
|
233
235
|
:буквы => буквы, :знаци => знаци,
|
234
236
|
:правило => {}, :правило_б => {},
|
@@ -258,10 +260,10 @@ private
|
|
258
260
|
dbp14 "------------"
|
259
261
|
dbp14 "#{кс_имя}"
|
260
262
|
|
261
|
-
|
262
|
-
|
263
|
+
@cp[:имяна] << кс_имя
|
264
|
+
@cp[:свойства][кс_имя] = {}
|
263
265
|
[ 'описаніе' ].each do |свойство|
|
264
|
-
|
266
|
+
@cp[:свойства][кс_имя][свойство.to_sym] = кс[свойство] if кс[свойство]
|
265
267
|
end
|
266
268
|
|
267
269
|
ширь_б_н = []
|
@@ -348,8 +350,8 @@ private
|
|
348
350
|
одинкы
|
349
351
|
end
|
350
352
|
|
351
|
-
|
352
|
-
|
353
|
+
@cp[:правило][кс_имя] = створи_правило(ширь[кс_i])
|
354
|
+
@cp[:правило_б][кс_имя] = створи_правило(ширь_б[кс_i])
|
353
355
|
|
354
356
|
буквы[кс_i] = {}
|
355
357
|
|
@@ -357,8 +359,8 @@ private
|
|
357
359
|
end; end
|
358
360
|
|
359
361
|
# разъкрытіе неѥдинныхъ знацей
|
360
|
-
|
361
|
-
dbp22 "Кодачица #{
|
362
|
+
@cp[:имяна].each_index do |кс_i|
|
363
|
+
dbp22 "Кодачица #{@cp[:имяна][кс_i]}"
|
362
364
|
сѣтка.each do |имя, знач_нн|
|
363
365
|
знач_нн.each do |знач_н|
|
364
366
|
next if знач_н[кс_i]
|
@@ -375,11 +377,11 @@ private
|
|
375
377
|
#сортировка слов по первой букве.
|
376
378
|
сѣтка.each do |имя, знач_нн|
|
377
379
|
знач_нн.each do |знач_н|
|
378
|
-
|
380
|
+
@cp[:имяна].each_index do |кс_i|
|
379
381
|
знач = знач_н[кс_i]
|
380
382
|
next unless знач
|
381
383
|
dbp24 "Значеніе #{знач.inspect} << #{знач_н.inspect}"
|
382
|
-
бук = знач.
|
384
|
+
бук = [ знач.unpack("U*")[0] ].pack("U*")
|
383
385
|
буквы[кс_i][бук] = {} unless буквы[кс_i][бук]
|
384
386
|
буквы[кс_i][бук][знач] = [] unless буквы[кс_i][бук][знач]
|
385
387
|
буквы[кс_i][бук][знач] << знач_н
|
@@ -397,28 +399,26 @@ private
|
|
397
399
|
|
398
400
|
public
|
399
401
|
|
400
|
-
def цѣль=(
|
401
|
-
cp =
|
402
|
-
|
403
|
-
@цѣль = cp
|
402
|
+
def цѣль=(кс)
|
403
|
+
if кс and @cp[:имяна].include?(кс = кс.to_sym)
|
404
|
+
@цѣль = кс
|
404
405
|
else
|
405
|
-
raise "Се ошибка: невѣсть къ цѣлева кодачица #{
|
406
|
+
raise "Се ошибка: невѣсть къ цѣлева кодачица #{кс}, кодачицы доступныя суть: #{@cp[:имяна].join(', ')}"
|
406
407
|
end
|
407
408
|
end
|
408
409
|
|
409
|
-
def истокъ=(
|
410
|
-
cp =
|
411
|
-
|
412
|
-
@истокъ = cp
|
410
|
+
def истокъ=(кс)
|
411
|
+
if кс and @cp[:имяна].include?(кс = кс.to_sym)
|
412
|
+
@истокъ = кс
|
413
413
|
else
|
414
|
-
raise "Се ошибка: невѣсть къ исходна кодачица #{
|
414
|
+
raise "Се ошибка: невѣсть къ исходна кодачица #{кс}, кодачицы доступныя суть: #{@cp[:имяна].join(', ')}"
|
415
415
|
end
|
416
416
|
end
|
417
417
|
|
418
418
|
def кодачицы
|
419
419
|
пл = {}
|
420
|
-
|
421
|
-
о =
|
420
|
+
@cp[:имяна].each do |име|
|
421
|
+
о = @cp[:свойства][име][:описаніе]
|
422
422
|
пл[име] = о[язы.to_s].to_s if о
|
423
423
|
end
|
424
424
|
пл
|
@@ -427,8 +427,8 @@ public
|
|
427
427
|
def кака_кода(писмя)
|
428
428
|
писмя = писмя.to_s
|
429
429
|
вѣса_сл = {}
|
430
|
-
|
431
|
-
шири =
|
430
|
+
@cp[:имяна].each_index do |кс_i|
|
431
|
+
шири = @cp[:ширь][кс_i]
|
432
432
|
|
433
433
|
matched = 0
|
434
434
|
unmatched = 0
|
@@ -438,7 +438,7 @@ public
|
|
438
438
|
end
|
439
439
|
end
|
440
440
|
|
441
|
-
вѣса_сл[
|
441
|
+
вѣса_сл[@cp[:имяна][кс_i]] = matched
|
442
442
|
end
|
443
443
|
вѣса = вѣса_сл.keys.sort do |ѯ,ѱ|
|
444
444
|
пл = вѣса_сл[ѱ] <=> вѣса_сл[ѯ]
|
@@ -451,17 +451,17 @@ public
|
|
451
451
|
def пръ_сл(кс)
|
452
452
|
return nil if кс.to_s.empty?
|
453
453
|
кс = кс.to_sym
|
454
|
-
return nil unless
|
454
|
+
return nil unless @cp[:имяна].include? кс
|
455
455
|
|
456
|
-
"[#{
|
456
|
+
"[#{@cp[:правило_б][кс]}]"
|
457
457
|
end
|
458
458
|
|
459
459
|
def пръ(кс)
|
460
460
|
return nil if кс.to_s.empty?
|
461
461
|
кс = кс.to_sym
|
462
|
-
return nil unless
|
462
|
+
return nil unless @cp[:имяна].include? кс
|
463
463
|
|
464
|
-
"[#{
|
464
|
+
"[#{@cp[:правило][кс]}]"
|
465
465
|
end
|
466
466
|
|
467
467
|
def [](str)
|
@@ -470,24 +470,24 @@ public
|
|
470
470
|
|
471
471
|
def ими(писмя, цѣль = @цѣль, истокъ = @истокъ)
|
472
472
|
self.цѣль = цѣль
|
473
|
-
цѣль_ѯ =
|
473
|
+
цѣль_ѯ = @cp[:имяна].index(@цѣль)
|
474
474
|
return nil unless цѣль_ѯ # TODO raise
|
475
475
|
|
476
476
|
писмя = писмя.to_s
|
477
477
|
истокъ = (истокъ || кака_кода(писмя)).to_sym
|
478
|
-
исх_ѯ =
|
478
|
+
исх_ѯ = @cp[:имяна].index(истокъ)
|
479
479
|
return nil unless исх_ѯ # TODO raise
|
480
480
|
|
481
|
-
return nil unless
|
481
|
+
return nil unless @cp[:сѣтка] # TODO raise
|
482
482
|
плодъ = ''
|
483
483
|
ѯ = 0
|
484
484
|
|
485
485
|
dbp22 "Знак: #{писмя.inspect}"
|
486
486
|
while писмя and not писмя.empty?
|
487
487
|
ѱ = 1
|
488
|
-
знк = писмя.
|
488
|
+
знк = [ писмя.unpack("U*")[0] ].pack("U*")
|
489
489
|
dbp22 "Знак: #{знк.inspect}"
|
490
|
-
реха =
|
490
|
+
реха = @cp[:буквы][исх_ѯ][знк]
|
491
491
|
|
492
492
|
if реха
|
493
493
|
dbp28 "Реха: #{реха.inspect}"
|
@@ -509,7 +509,7 @@ public
|
|
509
509
|
end
|
510
510
|
end
|
511
511
|
end
|
512
|
-
|
512
|
+
|
513
513
|
if (пл.class == Array) or (пл.class == String and пл =~ /\0/)
|
514
514
|
$stderr.puts "Вънми: Се знаць '#{знк}'(#{sprintf "ѯ%x", знк.ord})" +
|
515
515
|
" кодачицы #{истокъ} отъторжеся, бо нѣсть мощно прѣхложити и въ кодачицу #{цѣль}"
|
data/priehlazx.gemspec
CHANGED
@@ -12,12 +12,12 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.summary = 'priehlazx is char and text conversion utility and ruby library'
|
13
13
|
s.description = 'priehlazx is utility and ruby library to convert a char and text to a specific codepage'
|
14
14
|
|
15
|
-
s.executables = [ 'прѣхлагъ', '
|
15
|
+
s.executables = [ 'прѣхлагъ', 'priehlag' ]
|
16
16
|
s.rubyforge_project = "priehlazx"
|
17
17
|
|
18
18
|
s.required_rubygems_version = '>= 1.6.0'
|
19
19
|
|
20
|
-
s.add_dependency 'rdoba', ">= 0"
|
20
|
+
s.add_dependency 'rdoba', ">= 0.1"
|
21
21
|
|
22
22
|
s.add_development_dependency("bundler", ">= 1.0.0")
|
23
23
|
s.add_development_dependency("rspec", "~> 2.0.1")
|
@@ -272,7 +272,7 @@
|
|
272
272
|
иже инъ вынось: \и
|
273
273
|
икъ инъ вынось: \у
|
274
274
|
фертъ вынось: \ф
|
275
|
-
|
275
|
+
ща выносъ: \щ
|
276
276
|
еры вынось: \ы
|
277
277
|
ерь вынось: \ь
|
278
278
|
крест освящающъ: <\++/>
|
@@ -315,5 +315,5 @@
|
|
315
315
|
слово выносъ,возъгласъ вель: \с
|
316
316
|
червь выносъ,возъгласъ вель: \ч
|
317
317
|
ша выносъ,возъгласъ вель: \ш
|
318
|
-
|
318
|
+
ща выносъ,возъгласъ вель: \щ
|
319
319
|
|
@@ -105,13 +105,14 @@
|
|
105
105
|
двоострецо: ѯ30b
|
106
106
|
двокрапка: ѯ308
|
107
107
|
двочажесь: ѯ30f
|
108
|
+
возъгласъ: ̑
|
108
109
|
Есть,чажесь: Ѐ,Ѐ
|
109
110
|
Есть,двокрапка: Ё
|
110
|
-
|
111
|
+
Дьже: Ђ
|
111
112
|
Гье: Ѓ,Ѓ
|
112
113
|
Есть шыръ: Є
|
113
114
|
Ѕело: Ѕ
|
114
|
-
|
115
|
+
І: І
|
115
116
|
І,двокрапка: Ї
|
116
117
|
Ꙇі: Ј
|
117
118
|
Лье: Љ
|
@@ -178,7 +179,7 @@
|
|
178
179
|
цы: ц
|
179
180
|
червь: ч
|
180
181
|
ша: ш
|
181
|
-
|
182
|
+
ща: щ
|
182
183
|
еръ: ъ
|
183
184
|
еры: ы
|
184
185
|
ерь: ь
|
@@ -187,11 +188,11 @@
|
|
187
188
|
я: я
|
188
189
|
есть,чажесь: ѐ,ѐ
|
189
190
|
есть,двокрапка: ё
|
190
|
-
|
191
|
+
дьже: ђ
|
191
192
|
гье: ѓ,ѓ
|
192
193
|
есть шыръ: є
|
193
194
|
ѕело: ѕ
|
194
|
-
|
195
|
+
і: і
|
195
196
|
і,двокрапка: ї
|
196
197
|
ꙇі: ј
|
197
198
|
лье: љ
|
@@ -237,7 +238,7 @@
|
|
237
238
|
копа: ҁ
|
238
239
|
тысяча: ҂
|
239
240
|
възметъ: ҃
|
240
|
-
|
241
|
+
смягъченіе: ҄
|
241
242
|
звательцо: ҅
|
242
243
|
умилительцо: ҆
|
243
244
|
возъгласъ вель: ҇
|
@@ -245,6 +246,8 @@
|
|
245
246
|
леодръ: ҉
|
246
247
|
Глаголь твердъ: Ґ
|
247
248
|
глаголь твердъ: ґ
|
249
|
+
Нашъ мягъ: Ҥ
|
250
|
+
нашъ мягъ: ҥ
|
248
251
|
буки выносъ: ⷠ
|
249
252
|
вѣдѣ выносъ: ⷡ
|
250
253
|
глаголь выносъ: ⷢ
|
@@ -264,7 +267,7 @@
|
|
264
267
|
цы выносъ: ⷰ
|
265
268
|
червь выносъ: ⷱ
|
266
269
|
ша выносъ: ⷲ
|
267
|
-
|
270
|
+
ща выносъ: ⷳ
|
268
271
|
ѳита выносъ: ⷴ
|
269
272
|
слово твердо выносъ: ⷵ
|
270
273
|
азъ выносъ: ⷶ
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: priehlazx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,23 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
13
|
-
default_executable:
|
12
|
+
date: 2011-05-20 00:00:00.000000000Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: rdoba
|
17
|
-
requirement: &
|
16
|
+
requirement: &69580530 !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
18
|
requirements:
|
20
19
|
- - ! '>='
|
21
20
|
- !ruby/object:Gem::Version
|
22
|
-
version: '0'
|
21
|
+
version: '0.1'
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
version_requirements: *
|
24
|
+
version_requirements: *69580530
|
26
25
|
- !ruby/object:Gem::Dependency
|
27
26
|
name: bundler
|
28
|
-
requirement: &
|
27
|
+
requirement: &69580300 !ruby/object:Gem::Requirement
|
29
28
|
none: false
|
30
29
|
requirements:
|
31
30
|
- - ! '>='
|
@@ -33,10 +32,10 @@ dependencies:
|
|
33
32
|
version: 1.0.0
|
34
33
|
type: :development
|
35
34
|
prerelease: false
|
36
|
-
version_requirements: *
|
35
|
+
version_requirements: *69580300
|
37
36
|
- !ruby/object:Gem::Dependency
|
38
37
|
name: rspec
|
39
|
-
requirement: &
|
38
|
+
requirement: &69580070 !ruby/object:Gem::Requirement
|
40
39
|
none: false
|
41
40
|
requirements:
|
42
41
|
- - ~>
|
@@ -44,13 +43,13 @@ dependencies:
|
|
44
43
|
version: 2.0.1
|
45
44
|
type: :development
|
46
45
|
prerelease: false
|
47
|
-
version_requirements: *
|
46
|
+
version_requirements: *69580070
|
48
47
|
description: priehlazx is utility and ruby library to convert a char and text to a
|
49
48
|
specific codepage
|
50
49
|
email:
|
51
50
|
- 3aHyga@gmail.com
|
52
51
|
executables:
|
53
|
-
-
|
52
|
+
- priehlag
|
54
53
|
- прѣхлагъ
|
55
54
|
extensions: []
|
56
55
|
extra_rdoc_files: []
|
@@ -62,10 +61,11 @@ files:
|
|
62
61
|
- Gemfile
|
63
62
|
- HELP
|
64
63
|
- LICENSE
|
64
|
+
- README.en.md
|
65
65
|
- README.md
|
66
66
|
- Rakefile
|
67
67
|
- TODO
|
68
|
-
- bin/
|
68
|
+
- bin/priehlag
|
69
69
|
- bin/прѣхлагъ
|
70
70
|
- lib/priehlazx.rb
|
71
71
|
- lib/прѣхлажь.rb
|
@@ -78,7 +78,6 @@ files:
|
|
78
78
|
- share/UTF8.скс
|
79
79
|
- spec/spec_helper.rb
|
80
80
|
- spec/прѣхлажь_spec.rb
|
81
|
-
has_rdoc: true
|
82
81
|
homepage: https://github.com/3aHyga/priehlazx
|
83
82
|
licenses: []
|
84
83
|
post_install_message:
|
@@ -99,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
98
|
version: 1.6.0
|
100
99
|
requirements: []
|
101
100
|
rubyforge_project: priehlazx
|
102
|
-
rubygems_version: 1.
|
101
|
+
rubygems_version: 1.7.2
|
103
102
|
signing_key:
|
104
103
|
specification_version: 3
|
105
104
|
summary: priehlazx is char and text conversion utility and ruby library
|