priehlazx 0.0.3 → 0.0.4
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.
- 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
|