Class: Priehlazx

Inherits:
Object
  • Object
show all
Defined in:
lib/прѣхлажь.rb,
lib/priehlazx.rb,
lib/прѣхлажь/version.rb

Constant Summary collapse

Useful =
[
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd',
'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
't', 'u', 'v', 'w', 'x', 'y', 'z', 'Ꙇожъ', 'Ѕело', 'Ѕело зеркаль',
'Ѕело мягъ', 'Ѕело ꙁ', 'Азъ', 'Азъ инъ', 'Буки', 'Вѣдѣ', 'Гервь',
'Глаголь', 'Глаголь твердъ', 'Гье', 'Дже', 'Дьже', 'Добро', 'Добро мягъ',
'Добро удлинь', 'Ере', 'Ери', 'Ери еръ', 'Ери еръ', 'Ери еръ съузь',
'Ери съузь', 'Ериі', 'Ериі еръ', 'Ериі еръ', 'Ериі еръ съузь',
'Ериі съузь', 'Еръ', 'Еръ высъ', 'Еры', 'Еры еръ', 'Еры еръ съузь',
'Еры съузь', 'Ерь', 'Есть', 'Есть чажесь', 'Есть шыръ', 'Живете', 'Земля',
'Земля ꙁ', 'Иже', 'Иже чажесь', 'Иже ётъ', 'І',
'Икъ', 'Како', 'Копа', 'Кье', 'Лье', 'Люди',
'Люди мягъ', 'Мыслете', 'Мыслете мягъ', 'Нашъ', 'Нашъ мягъ', 'Нье',
'Омега', 'Оникъ', 'Онъ', 'Онъ двоенъ', 'Онъ двоенъ одинокъ',
'Онъ съкрестъ', 'Онъ узъ', 'Онъ шыръ', 'Онъ шыръ двуокъ',
'Онъ шыръ одинокъ', 'Покои', 'Рьцы', 'Слово', 'Слово подстрочь', 'Твердо',
'Твердо высъ', 'Твердо тревысъ', 'Тше', 'Укикъ', 'Укъ', 'Фертъ', 'Хѣръ',
'Цы', 'Цы въгнутъ', 'Червь', 'Червь чашевидь', 'Ша', 'Шта', 'Шта въгнутъ',
'Ща', 'Ынъ', 'Это', 'Юсъ', 'Юсъ вель', 'Юсъ вель двуногъ', 'Юсъ зеркаль',
'Юсъ кратъ', 'Юсъ малъ', 'Юсъ малъ подчёрчь',
'Юсъ малъ подъчерчь', 'Юсъ малъ прогнутъ', 'Юсъ средь', 'Я', 'Ѣдь',
'Ѣдь высъ', 'Ѣдь предчерчь',
'азъ', 'азъ инъ', 'буки',
'вѣдѣ', 'гервь', 'глава Маркова', 'глаголь',
'глаголь твердъ', 'гье',
'дже', 'дьже', 'добро',
'добро мягъ', 'добро удлинь', 'ере', 'ери', 'ери еръ съузь',
'ери съузь', 'ериі', 'ериі еръ съузь', 'ериі съузь', 'еръ', 'еръ высъ',
'еры', 'еры еръ', 'еры еръ съузь', 'еры съузь', 'ерь',
'есть', 'есть шыръ', 'живете',
'земля',
'земля ꙁ', 'иже',
'і', 'икъ',
'како',
'копа',
'кье',
'лье', 'люди',
'люди мягъ', 'мыслете',
'мыслете мягъ', 'нашъ', 'нашъ мягъ',
'нье', 'омега', 'оникъ', 'онъ',
'онъ двоенъ', 'онъ двоенъ одинокъ', 'онъ многоокъ',
'онъ съкрестъ', 'онъ узъ', 'онъ шыръ', 'онъ шыръ одинокъ',
'онъ шыръ одинъкъ',
'покои',
'рьцы',
'слово',
'слово подстрочь',
'твердо', 'твердо высъ', 'твердо тревысъ',
'тше',
'укикъ', 'укъ',
'фертъ', 'хѣръ',
'цы', 'цы въгнутъ', 'червь',
'червь чашевидь', 'ша',
'шта', 'шта въгнутъ',
'ща', 'ынъ', 'это', 'юсъ', 'юсъ вель',
'юсъ вель двуногъ', 'юсъ зеркаль',
'юсъ кратъ', 'юсъ малъ', 'юсъ малъ подчёрчь',
'юсъ малъ подъчерчь', 'юсъ малъ прогнутъ', 'юсъ средь',
'я', 'ѣдь', 'ѣдь высъ',
'ѣдь предчерчь', 'ꙇожъ',
'ѕело', 'ѕело зеркаль', 'ѕело мягъ', 'ѕело ꙁ', 'Омега веля', 'Омега шыръ',
'Отъ', 'омега веля', 'омега шыръ', 'отъ', 'Ксы', 'ксы', 'Псы', 'псы',
'Ѳита', 'ѳита', 'Іжица', 'іжица', 'Ꙇазъ', 'Ꙇоть',
'Ꙇазъ пречерчь', 'Ꙇі', 'Ꙇюсъ вель', 'Ꙇюсъ малъ',
'Ꙇюсъ малъ подчёрчь', 'Ꙇѣдь', 'Ꙇесть',
'ꙇазъ', 'ꙇазъ пречерчь', 'ꙇоть',
'ꙇі', 'ꙇюсъ вель', 'ꙇюсъ малъ',
'ꙇюсъ малъ подчёрчь', 'ꙇѣдь', 'ꙇесть',
]
VERSION =
"0.0.4"
@@Знаци =

TODO

def puts(*args)
  File.open('slavconv.log','a') do |f| f.puts *args end
end
[
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd',
'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
't', 'u', 'v', 'w', 'x', 'y', 'z', 'Ꙇожъ', 'Ѕело', 'Ѕело зеркаль',
'Ѕело мягъ', 'Ѕело ꙁ', 'Азъ', 'Азъ инъ', 'Буки', 'Вѣдѣ', 'Гервь',
'Глаголь', 'Глаголь твердъ', 'Гье', 'Дже', 'Дьже', 'Добро', 'Добро мягъ',
'Добро удлинь', 'Ере', 'Ери', 'Ери еръ', 'Ери еръ', 'Ери еръ съузь',
'Ери съузь', 'Ериі', 'Ериі еръ', 'Ериі еръ', 'Ериі еръ съузь',
'Ериі съузь', 'Еръ', 'Еръ высъ', 'Еры', 'Еры еръ', 'Еры еръ съузь',
'Еры съузь', 'Ерь', 'Есть', 'Есть чажесь', 'Есть шыръ', 'Живете', 'Земля',
'Земля ꙁ', 'Иже', 'Иже чажесь', 'Иже ётъ', 'І',
'Икъ', 'Како', 'Копа', 'Кье', 'Лье', 'Люди',
'Люди мягъ', 'Мыслете', 'Мыслете мягъ', 'Нашъ', 'Нашъ мягъ', 'Нье',
'Омега', 'Оникъ', 'Онъ', 'Онъ двоенъ', 'Онъ двоенъ одинокъ',
'Онъ съкрестъ', 'Онъ узъ', 'Онъ шыръ', 'Онъ шыръ двуокъ',
'Онъ шыръ одинокъ', 'Покои', 'Рьцы', 'Слово', 'Слово подстрочь', 'Твердо',
'Твердо высъ', 'Твердо тревысъ', 'Тше', 'Укикъ', 'Укъ', 'Фертъ', 'Хѣръ',
'Цы', 'Цы въгнутъ', 'Червь', 'Червь чашевидь', 'Ша', 'Шта', 'Шта въгнутъ',
'Ща', 'Ынъ', 'Это', 'Юсъ', 'Юсъ вель', 'Юсъ вель двуногъ', 'Юсъ зеркаль',
'Юсъ кратъ', 'Юсъ малъ', 'Юсъ малъ подчёрчь',
'Юсъ малъ подъчерчь', 'Юсъ малъ прогнутъ', 'Юсъ средь', 'Я', 'Ѣдь',
'Ѣдь высъ', 'Ѣдь предчерчь', 'острецо', 'чажесь', 'двоострецо', 'двочажесь',
'кратьцо', 'крапка', 'двокрапка',
'азъ', 'азъ выносъ', 'азъ инъ', 'большѣ', 'буки',
'буки выносъ', 'вѣдѣ выносъ', 'вершина глася', 'възметна буква',
'възметъ', 'возъгласъ', 'возъгласъ вель', 'восемь', 'вранъ',
'въводъ', 'вѣдѣ', 'гервь', 'глава Маркова', 'глаголь',
'глаголь твердъ', 'глаголь выносъ', 'гье', 'два', 'двоеточіе',
'девѧть', 'гервь выносъ', 'дже', 'дьже', 'добро', 'добро выносъ',
'добро мягъ', 'добро удлинь', 'дѣлитель', 'ере', 'ери', 'ери еръ съузь',
'ери съузь', 'ериі', 'ериі еръ съузь', 'ериі съузь', 'еръ', 'еръ высъ',
'еры', 'еры вынось', 'еры еръ', 'еры еръ съузь', 'еры съузь', 'ерь',
'ерь вынось', 'есть', 'есть выносъ', 'есть шыръ', 'живете',
'живете выносъ', 'запѧта', 'звательцо', 'звёздочка', 'земля',
'земля выносъ', 'земля ꙁ', 'знакъ вопрось', 'знакъ воскличь', 'иже',
'і', 'икъ', 'ичокъ', 'иже инъ вынось', 'икъ инъ вынось',
'кавыка', 'кавыка выносъ', 'кавыкы обратны', 'кавыкы прямы',
'кавычь одина', 'како', 'како выносъ', 'колода',
'колода', 'копа', 'крест освящающъ', 'крест освящающъ дужь',
'крестикъ сносочь', 'крестъ и҃-конечь', 'крестъ и҃-конечь очерчь',
'крестъ равносторонъ изразьцъ', 'крестъ равносторонъ изразьцъ въ кругѣ',
'крестъ равносторонъ изразьцъ въ нижемъ полукругѣ',
'крестъ равносторонъ изразьцъ очерчь въ кругѣ',
'крестъ равносторонъ изразьцъ очерчь въ нижемъ полукругѣ',
'крестъ равносторонь очерчь изразьцъ', 'кривька', 'ктому', 'кье',
'легіонъ', 'леодръ', 'лье', 'люди',
'люди выносъ', 'люди мягъ', 'меньшѣ', 'мыслете', 'мыслете выносъ',
'мыслете мягъ', 'мѣта', 'нашъ', 'нашъ выносъ', 'нашъ мягъ',
'нье', 'обратный дѣлитель', 'один', 'омега', 'оникъ', 'онъ',
'онъ выносъ', 'онъ двоенъ', 'онъ двоенъ одинокъ', 'онъ многоокъ',
'онъ съкрестъ', 'онъ узъ', 'онъ шыръ', 'онъ шыръ одинокъ',
'онъ шыръ одинъкъ', 'запинка глася', 'отого', 'паеръ', 'паеръ выносъ',
'палочка', 'переносъ', 'песъ', 'петелка', 'подчеркъ', 'покои',
'покои выносъ', 'покрытіе', 'препинаніе а',
'препинаніе б', 'препинаніе в', 'препинаніе г', 'препинаніе д',
'препинаніе е', 'препинаніе ж', 'пробѣлъ', 'пущь', 'пѧть', 'равно',
'распѣвъ въ слогѣ', 'рьцы', 'рьцы выносъ', 'рѣшётка',
'семь', 'сирѣчь', 'скобка закрывающа', 'скобка изразьна закрывающа',
'скобка изразьна открывающа', 'скобка открывающа',
'скобка прямочерта закрывающа', 'скобка прямочерта открывающа', 'слово',
'слово выносъ', 'слово подстрочь', 'слово твердо выносъ', 'смягъченіе',
'сотка', 'твердо', 'твердо выносъ', 'твердо высъ', 'твердо тревысъ',
'точька запята', 'точька', 'три',
'троеточіе одесну несоверше окружено',
'троеточіе одесну несоверше окружено очерче',
'троеточіе ошую несоверше окружено',
'троеточіе ошую несоверше окружено очерче', 'тше', 'тысяча', 'тьма',
'тьматемъ', 'укикъ', 'укъ', 'укъ выносъ', 'умилительцо',
'умноженіе', 'фертъ', 'фертъ вынось', 'ѳита выносъ', 'хѣръ',
'хѣръ выносъ', 'цы', 'цы въгнутъ', 'цы выносъ', 'цѧтокъ', 'червь',
'червь выносъ', 'червь чашевидь', 'черта', 'четыре', 'ша',
'ша выносъ', 'шта', 'шта въгнутъ', 'шесть',
'ща выносъ', 'ща', 'ынъ', 'это', 'юсъ', 'юсъ вель',
'юсъ вель выносъ', 'юсъ вель двуногъ', 'юсъ выносъ', 'юсъ зеркаль',
'юсъ кратъ', 'юсъ малъ', 'юсъ малъ выносъ', 'юсъ малъ подчёрчь',
'юсъ малъ подъчерчь', 'юсъ малъ прогнутъ', 'юсъ средь',
'я', 'ѣдь', 'ѣдь выносъ', 'ѣдь высъ',
'ѣдь предчерчь', 'яма глася', 'ꙇожъ', 'ѕвездочка', 'ѕвездочка сносоча',
'ѕело', 'ѕело зеркаль', 'ѕело мягъ', 'ѕело ꙁ', 'Омега веля', 'Омега шыръ',
'Отъ', 'омега веля', 'омега шыръ', 'отъ', 'Ксы', 'ксы', 'Псы', 'псы',
'Ѳита', 'ѳита', 'Іжица', 'іжица', 'Ꙇазъ', 'Ꙇоть',
'Ꙇазъ пречерчь', 'Ꙇі', 'Ꙇюсъ вель', 'Ꙇюсъ малъ',
'Ꙇюсъ малъ подчёрчь', 'Ꙇѣдь', 'Ꙇесть',
'ꙇазъ', 'ꙇазъ выносъ', 'ꙇазъ пречерчь', 'ꙇоть',
'ꙇі', 'ꙇюсъ вель', 'ꙇюсъ вель выносъ', 'ꙇюсъ малъ',
'ꙇюсъ малъ подчёрчь', 'ꙇѣдь', 'ꙇесть',
'двоскоба шуя', 'двоскоба десна', 'двокавычь нижя', 'двокавычь десна',
'двокавычь шуя', 'кавычь шуя', 'кавычь десна', 'кавычь нижя',
'подъглавокъ', 'преносъ мягъ', 'кавычь двоина', 'преносъ', 'вдохъ', 'стои',
'закавыка', 'уголъ', 'придыхъ', 'движеніе гласа восходяще',
'движеніе гласа нисходяще', 'запинка пѣнія',
'преносъ долъгъ',
]

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#истокъObject

Returns the value of attribute истокъ.



11
12
13
# File 'lib/прѣхлажь.rb', line 11

def истокъ
  @истокъ
end

#цѣльObject

Returns the value of attribute цѣль.



11
12
13
# File 'lib/прѣхлажь.rb', line 11

def цѣль
  @цѣль
end

Instance Method Details

#[](str) ⇒ Object



467
468
469
# File 'lib/прѣхлажь.rb', line 467

def [](str)
    ими(str)
end

#ими(писмя, цѣль = @цѣль, истокъ = @истокъ) ⇒ Object Also known as: go



471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
# File 'lib/прѣхлажь.rb', line 471

def ими(писмя, цѣль = @цѣль, истокъ = @истокъ)
    self.цѣль = цѣль
    цѣль_ѯ = @cp[:имяна].index(@цѣль)
    return nil unless цѣль_ѯ # TODO raise

    писмя = писмя.to_s
    истокъ = (истокъ || кака_кода(писмя)).to_sym
    исх_ѯ = @cp[:имяна].index(истокъ)
    return nil unless исх_ѯ # TODO raise

    return nil unless @cp[:сѣтка] # TODO raise
    плодъ = ''
    ѯ = 0

    dbp22 "Знак: #{писмя.inspect}"
    while писмя and not писмя.empty?
        ѱ = 1
        знк = [ писмя.unpack("U*")[0] ].pack("U*")
        dbp22 "Знак: #{знк.inspect}"
        реха = @cp[:буквы][исх_ѯ][знк]

        if реха
		dbp28 "Реха: #{реха.inspect}"
		реха_а = []
		реха.keys.sort do |а,б| б.size <=> а.size end.each do |знач|
  знач_н = реха[знач]
  реха_а << реха[знач].sort do |а,б| а[цѣль_ѯ].size <=> б[цѣль_ѯ].size end
		end

		dbp28 "Нова реха: #{реха_а.inspect}"
		пл = реха_а.flatten(1).each do |а|
  dbp24 "Запись: #{а.inspect}"
  if а[исх_ѯ] and писмя =~ /^#{а[исх_ѯ].to_res}(.*)/u
			dbp24 "Попало: #{писмя.inspect} =~ #{а.inspect}"
			if а[цѣль_ѯ]
   писмя = $1
   ѱ = а[исх_ѯ].size
   break а[цѣль_ѯ]
			end
  end
		end

		if (пл.class == Array) or (пл.class == String and пл =~ /\0/)
  $stderr.puts "Вънми: Се знаць '#{знк}'(#{sprintf "ѯ%x", знк.ord})" +
			" кодачицы #{истокъ} отъторжеся, бо нѣсть мощно прѣхложити и въ кодачицу #{цѣль}"
  писмя =~ /^.(.*)/u; писмя = $1
		elsif пл.class == String
  плодъ << пл
		else
  $stderr.puts "Невѣдома ошибка: sѣло страньнъ класъ #{пл.class} вещи списка"
  писмя =~ /^.(.*)/u; писмя = $1
		end
 else
            $stderr.puts "Вънми: Се знаць '#{знк}'(#{sprintf "ѯ%x", знк.ord}) кодачицы #{истокъ} отъторжеся, зане не обретенъ въ онои"
            писмя =~ /^.(.*)/u; писмя = $1
 end

        ѯ += ѱ
    end

    плодъ
end

#кака_кода(писмя) ⇒ Object



427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
# File 'lib/прѣхлажь.rb', line 427

def кака_кода(писмя)
    писмя = писмя.to_s
    вѣса_сл = {}
    @cp[:имяна].each_index do |кс_i|
        шири = @cp[:ширь][кс_i]

        matched = 0
        unmatched = 0
        писмя.each_char do |бк|
            шири.each do |ширь|
                matched += 1 if ширь === бк
            end
        end

        вѣса_сл[@cp[:имяна][кс_i]] = matched
    end
    вѣса = вѣса_сл.keys.sort do |ѯ,ѱ|
        пл = вѣса_сл[ѱ] <=> вѣса_сл[ѯ]
        пл != 0 ? пл : @цѣль == ѯ ? 1 : @цѣль == ѱ ? -1 :
        ѯ.to_s <=> ѱ.to_s
    end
    вѣса && (not вѣса.empty?) && вѣса[0]
end

#кодачицыObject



418
419
420
421
422
423
424
425
# File 'lib/прѣхлажь.rb', line 418

def кодачицы
	пл = {}
	@cp[:имяна].each do |име|
 о = @cp[:свойства][име][:описаніе]
 пл[име] = о[язы.to_s].to_s if о
	end
	пл
end

#пръ(кс) ⇒ Object



459
460
461
462
463
464
465
# File 'lib/прѣхлажь.rb', line 459

def пръ(кс)
    return nil if кс.to_s.empty?
    кс = кс.to_sym
    return nil unless @cp[:имяна].include? кс

    "[#{@cp[:правило][кс]}]"
end

#пръ_сл(кс) ⇒ Object



451
452
453
454
455
456
457
# File 'lib/прѣхлажь.rb', line 451

def пръ_сл(кс)
    return nil if кс.to_s.empty?
    кс = кс.to_sym
    return nil unless @cp[:имяна].include? кс

    "[#{@cp[:правило_б][кс]}]"
end