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 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
- # Прехлагъ (Priehlazx)
1
+ # Прехлагъ
2
2
 
3
3
  Текстопреобразующая программка и библіотека. Сейчасъ поддерживаетъ слѣдующія кодировки:
4
- * UTF8
5
- * UTF8/HIP
6
- * UCS8
4
+ * UCS8 - Обобщённая 8-битная церковнославянская кодировка;
5
+ * UTF8 - 8-битная обобщенная кодировка, использующая многобайтныя послѣдовательности;
6
+ * UTF8/HIP - Независимое представленіе церковныхъ, древнеславянскихъ и древнегрѣческихъ текстовъ на основѣ 8-битной обобщенной кодировки;
7
+ * UTF8/TR-CYR - Представленіе кириллическихъ знаковъ латиницею на основѣ 8-битной обобщенной кодировки;
8
+ * UTF8/TR-CYR-S - Упрощённое представленіе кириллическихъ знаковъ латиницею на основѣ 8-битной обобщенной кодировки;
7
9
 
8
- Text converting utility. Now supports the following codepages:
9
- * UTF8
10
- * UTF8/HIP
11
- * UCS8
10
+ ## Консольная программка
12
11
 
13
- ## Права (Copyright)
12
+ $ прѣхлагъ --help
13
+ Usage: прѣхлагъ [OPTIONS]
14
14
 
15
- Авторскія и исключительныя права (а) 2011 Малъ Скрылевъ
16
- Зри LICENSE за подробностями.
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
- Copyright (c) 2011 Malo Skrylevo
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 за подробностями.
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
- знаци_нн = @кс[:сѣтка][а.join(',')]
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
- @кс[:свойства][кс_имя][свойство.to_sym] = кс[свойство] if кс[свойство]
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
- @кс[:правило][кс_имя] = створи_правило(ширь[кс_i])
352
- @кс[:правило_б][кс_имя] = створи_правило(ширь_б[кс_i])
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
- @кс[:имяна].each_index do |кс_i|
361
- dbp22 "Кодачица #{@кс[:имяна][кс_i]}"
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
- @кс[:имяна].each_index do |кс_i|
380
+ @cp[:имяна].each_index do |кс_i|
379
381
  знач = знач_н[кс_i]
380
382
  next unless знач
381
383
  dbp24 "Значеніе #{знач.inspect} << #{знач_н.inspect}"
382
- бук = знач.get(0)
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 цѣль=(cp)
401
- cp = cp.to_sym
402
- if @кс[:имяна].include?(cp)
403
- @цѣль = cp
402
+ def цѣль=(кс)
403
+ if кс and @cp[:имяна].include?(кс = кс.to_sym)
404
+ @цѣль = кс
404
405
  else
405
- raise "Се ошибка: невѣсть къ цѣлева кодачица #{cp}, кодачицы доступныя суть: #{@кс[:имяна].join(', ')}"
406
+ raise "Се ошибка: невѣсть къ цѣлева кодачица #{кс}, кодачицы доступныя суть: #{@cp[:имяна].join(', ')}"
406
407
  end
407
408
  end
408
409
 
409
- def истокъ=(cp)
410
- cp = cp.to_sym
411
- if @кс[:имяна].include?(cp)
412
- @истокъ = cp
410
+ def истокъ=(кс)
411
+ if кс and @cp[:имяна].include?(кс = кс.to_sym)
412
+ @истокъ = кс
413
413
  else
414
- raise "Се ошибка: невѣсть къ исходна кодачица #{cp}, кодачицы доступныя суть: #{@кс[:имяна].join(', ')}"
414
+ raise "Се ошибка: невѣсть къ исходна кодачица #{кс}, кодачицы доступныя суть: #{@cp[:имяна].join(', ')}"
415
415
  end
416
416
  end
417
417
 
418
418
  def кодачицы
419
419
  пл = {}
420
- @кс[:имяна].each do |име|
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
- @кс[:имяна].each_index do |кс_i|
431
- шири = @кс[:ширь][кс_i]
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
- вѣса_сл[@кс[:имяна][кс_i]] = matched
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 @кс[:имяна].include? кс
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 @кс[:имяна].include? кс
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
- цѣль_ѯ = @кс[:имяна].index(@цѣль)
473
+ цѣль_ѯ = @cp[:имяна].index(@цѣль)
474
474
  return nil unless цѣль_ѯ # TODO raise
475
475
 
476
476
  писмя = писмя.to_s
477
477
  истокъ = (истокъ || кака_кода(писмя)).to_sym
478
- исх_ѯ = @кс[:имяна].index(истокъ)
478
+ исх_ѯ = @cp[:имяна].index(истокъ)
479
479
  return nil unless исх_ѯ # TODO raise
480
480
 
481
- return nil unless @кс[:сѣтка] # TODO raise
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
- знк = писмя.get(0)
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
- знаци_нн = @кс[:сѣтка][а.join(',')]
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
- @кс[:свойства][кс_имя][свойство.to_sym] = кс[свойство] if кс[свойство]
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
- @кс[:правило][кс_имя] = створи_правило(ширь[кс_i])
352
- @кс[:правило_б][кс_имя] = створи_правило(ширь_б[кс_i])
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
- @кс[:имяна].each_index do |кс_i|
361
- dbp22 "Кодачица #{@кс[:имяна][кс_i]}"
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
- @кс[:имяна].each_index do |кс_i|
380
+ @cp[:имяна].each_index do |кс_i|
379
381
  знач = знач_н[кс_i]
380
382
  next unless знач
381
383
  dbp24 "Значеніе #{знач.inspect} << #{знач_н.inspect}"
382
- бук = знач.get(0)
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 цѣль=(cp)
401
- cp = cp.to_sym
402
- if @кс[:имяна].include?(cp)
403
- @цѣль = cp
402
+ def цѣль=(кс)
403
+ if кс and @cp[:имяна].include?(кс = кс.to_sym)
404
+ @цѣль = кс
404
405
  else
405
- raise "Се ошибка: невѣсть къ цѣлева кодачица #{cp}, кодачицы доступныя суть: #{@кс[:имяна].join(', ')}"
406
+ raise "Се ошибка: невѣсть къ цѣлева кодачица #{кс}, кодачицы доступныя суть: #{@cp[:имяна].join(', ')}"
406
407
  end
407
408
  end
408
409
 
409
- def истокъ=(cp)
410
- cp = cp.to_sym
411
- if @кс[:имяна].include?(cp)
412
- @истокъ = cp
410
+ def истокъ=(кс)
411
+ if кс and @cp[:имяна].include?(кс = кс.to_sym)
412
+ @истокъ = кс
413
413
  else
414
- raise "Се ошибка: невѣсть къ исходна кодачица #{cp}, кодачицы доступныя суть: #{@кс[:имяна].join(', ')}"
414
+ raise "Се ошибка: невѣсть къ исходна кодачица #{кс}, кодачицы доступныя суть: #{@cp[:имяна].join(', ')}"
415
415
  end
416
416
  end
417
417
 
418
418
  def кодачицы
419
419
  пл = {}
420
- @кс[:имяна].each do |име|
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
- @кс[:имяна].each_index do |кс_i|
431
- шири = @кс[:ширь][кс_i]
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
- вѣса_сл[@кс[:имяна][кс_i]] = matched
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 @кс[:имяна].include? кс
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 @кс[:имяна].include? кс
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
- цѣль_ѯ = @кс[:имяна].index(@цѣль)
473
+ цѣль_ѯ = @cp[:имяна].index(@цѣль)
474
474
  return nil unless цѣль_ѯ # TODO raise
475
475
 
476
476
  писмя = писмя.to_s
477
477
  истокъ = (истокъ || кака_кода(писмя)).to_sym
478
- исх_ѯ = @кс[:имяна].index(истокъ)
478
+ исх_ѯ = @cp[:имяна].index(истокъ)
479
479
  return nil unless исх_ѯ # TODO raise
480
480
 
481
- return nil unless @кс[:сѣтка] # TODO raise
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
- знк = писмя.get(0)
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
  " кодачицы #{истокъ} отъторжеся, бо нѣсть мощно прѣхложити и въ кодачицу #{цѣль}"
@@ -1,3 +1,3 @@
1
1
  class Priehlazx
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
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 = [ 'прѣхлагъ', 'priehlahq' ]
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
 
@@ -71,7 +71,7 @@
71
71
  Азъ: A
72
72
  Буки: B
73
73
  Вѣдѣ: V
74
- Глаголь: Hq,HQ
74
+ Глаголь: G
75
75
  Добро: D
76
76
  Есть: E
77
77
  Живете: Zx,ZX
@@ -103,7 +103,7 @@
103
103
  азъ: a
104
104
  буки: b
105
105
  вѣдѣ: v
106
- глаголь: hq
106
+ глаголь: g
107
107
  добро: d
108
108
  есть: e
109
109
  живете: zx
@@ -174,7 +174,7 @@
174
174
  цы: ц
175
175
  червь: ч
176
176
  ша: ш
177
- шта: щ
177
+ ща: щ
178
178
  еръ: ъ
179
179
  еры: ы
180
180
  ерь: ь
@@ -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.3
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-03-31 00:00:00.000000000 +04:00
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: &69572160 !ruby/object:Gem::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: *69572160
24
+ version_requirements: *69580530
26
25
  - !ruby/object:Gem::Dependency
27
26
  name: bundler
28
- requirement: &69571930 !ruby/object:Gem::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: *69571930
35
+ version_requirements: *69580300
37
36
  - !ruby/object:Gem::Dependency
38
37
  name: rspec
39
- requirement: &69571700 !ruby/object:Gem::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: *69571700
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
- - priehlahq
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/priehlahq
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.6.2
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