priehlazx 0.0.2 → 0.0.3

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/bin/priehlahq CHANGED
@@ -4,7 +4,7 @@
4
4
  require 'optparse'
5
5
  # check if priehlazx is available as not-a-gem
6
6
  begin
7
- $: << '../lib'
7
+ $: << '../lib' << './lib'
8
8
  require 'priehlazx'
9
9
  rescue LoadError
10
10
  begin require 'rubygems'; rescue LoadError; end
@@ -22,6 +22,7 @@ begin
22
22
  цѣль = nil
23
23
  истокъ = nil
24
24
  debug = nil
25
+ list = false
25
26
 
26
27
  ARGV.options do |o|
27
28
  script_name = File.basename($0)
@@ -50,6 +51,8 @@ begin
50
51
  "Acquire RegExp for the code page") { |i| re_cp_w = i }
51
52
  o.on("-r", "--acquire-regexp=val", String,
52
53
  "Acquire RegExp for the code page") { |i| re_cp = i }
54
+ o.on("-l", "--list-codepages", String,
55
+ "List available codepages and exit") { |i| list = true }
53
56
  o.on("-d", "--set-debug-info-level=val", String,
54
57
  "Set debug information log level") { |i| $debug_Priehlazx = i.to_i(16) }
55
58
 
@@ -59,13 +62,45 @@ begin
59
62
 
60
63
  o.parse!
61
64
 
62
- unless re_cp or re_cp_w or istring or ifile
65
+ unless re_cp or re_cp_w or istring or ifile or list
63
66
  $stderr.puts o; exit 1
64
67
  end
65
68
  end
66
69
 
67
70
  pl = Priehlazx.new
68
71
 
72
+ if list
73
+ puts "Available codepages are:"
74
+ pl.кодачицы.keys.sort.each do |име|
75
+ описаніе_н = pl.кодачицы[име].unpack("U*")
76
+ # ѯ = ((описаніе_н.size - 1) / 56) * 56
77
+ описаніе_н_дл = описаніе_н.size
78
+ ѯ = 55
79
+ while ѯ < описаніе_н_дл
80
+ if (ѯ.downto(ѯ - 55) do |ѱ|
81
+ зн = [ описаніе_н[ѱ] ].pack('U*')
82
+ if зн =~ /[\.,!?:;\(\)@#\$%\^&\*"'\|\\\/\[\]]/
83
+ описаніе_н.insert(ѱ, [ 0xA ] + Array.new(24, 0x20))
84
+ описаніе_н_дл += 1
85
+ ѯ += 57
86
+ break nil
87
+ elsif зн == " "
88
+ описаніе_н[ѱ] = [ 0xA ] + Array.new(24, 0x20)
89
+ ѯ += 56 # 80 - 2 - 20 - 2
90
+ break nil
91
+ end
92
+ end)
93
+ # не найден пробел или знаки препинания
94
+ описаніе_н.insert(ѯ, [ 0xA ] + Array.new(24, 0x20))
95
+ описаніе_н_дл += 1
96
+ ѯ += 57
97
+ end
98
+ end
99
+ printf " %-20s #{описаніе_н.flatten.pack("U*")}\n", име
100
+ end
101
+ exit
102
+ end
103
+
69
104
  if re_cp
70
105
  puts pl.пръ(re_cp)
71
106
  elsif re_cp_w
@@ -4,7 +4,7 @@
4
4
  require 'optparse'
5
5
  # check if priehlazx is available as not-a-gem
6
6
  begin
7
- $: << '../lib'
7
+ $: << '../lib' << './lib'
8
8
  require 'priehlazx'
9
9
  rescue LoadError
10
10
  begin require 'rubygems'; rescue LoadError; end
@@ -22,6 +22,7 @@ begin
22
22
  цѣль = nil
23
23
  истокъ = nil
24
24
  debug = nil
25
+ list = false
25
26
 
26
27
  ARGV.options do |o|
27
28
  script_name = File.basename($0)
@@ -50,6 +51,8 @@ begin
50
51
  "Acquire RegExp for the code page") { |i| re_cp_w = i }
51
52
  o.on("-r", "--acquire-regexp=val", String,
52
53
  "Acquire RegExp for the code page") { |i| re_cp = i }
54
+ o.on("-l", "--list-codepages", String,
55
+ "List available codepages and exit") { |i| list = true }
53
56
  o.on("-d", "--set-debug-info-level=val", String,
54
57
  "Set debug information log level") { |i| $debug_Priehlazx = i.to_i(16) }
55
58
 
@@ -59,13 +62,45 @@ begin
59
62
 
60
63
  o.parse!
61
64
 
62
- unless re_cp or re_cp_w or istring or ifile
65
+ unless re_cp or re_cp_w or istring or ifile or list
63
66
  $stderr.puts o; exit 1
64
67
  end
65
68
  end
66
69
 
67
70
  pl = Priehlazx.new
68
71
 
72
+ if list
73
+ puts "Available codepages are:"
74
+ pl.кодачицы.keys.sort.each do |име|
75
+ описаніе_н = pl.кодачицы[име].unpack("U*")
76
+ # ѯ = ((описаніе_н.size - 1) / 56) * 56
77
+ описаніе_н_дл = описаніе_н.size
78
+ ѯ = 55
79
+ while ѯ < описаніе_н_дл
80
+ if (ѯ.downto(ѯ - 55) do |ѱ|
81
+ зн = [ описаніе_н[ѱ] ].pack('U*')
82
+ if зн =~ /[\.,!?:;\(\)@#\$%\^&\*"'\|\\\/\[\]]/
83
+ описаніе_н.insert(ѱ, [ 0xA ] + Array.new(24, 0x20))
84
+ описаніе_н_дл += 1
85
+ ѯ += 57
86
+ break nil
87
+ elsif зн == " "
88
+ описаніе_н[ѱ] = [ 0xA ] + Array.new(24, 0x20)
89
+ ѯ += 56 # 80 - 2 - 20 - 2
90
+ break nil
91
+ end
92
+ end)
93
+ # не найден пробел или знаки препинания
94
+ описаніе_н.insert(ѯ, [ 0xA ] + Array.new(24, 0x20))
95
+ описаніе_н_дл += 1
96
+ ѯ += 57
97
+ end
98
+ end
99
+ printf " %-20s #{описаніе_н.flatten.pack("U*")}\n", име
100
+ end
101
+ exit
102
+ end
103
+
69
104
  if re_cp
70
105
  puts pl.пръ(re_cp)
71
106
  elsif re_cp_w
data/lib/priehlazx.rb CHANGED
@@ -210,6 +210,17 @@ private
210
210
  nil
211
211
  end
212
212
 
213
+ def язы
214
+ case ENV['LANG'] || ENV['LC_CTYPE']
215
+ when /^ru/
216
+ :ру
217
+ when /^en/
218
+ :ан
219
+ else
220
+ :ру
221
+ end
222
+ end
223
+
213
224
  def initialize
214
225
  кс_i = 0
215
226
  сѣтка = {}
@@ -221,6 +232,7 @@ private
221
232
  :сѣтка => сѣтка, :имяна => [],
222
233
  :буквы => буквы, :знаци => знаци,
223
234
  :правило => {}, :правило_б => {},
235
+ :свойства => {},
224
236
  }
225
237
 
226
238
  home = begin
@@ -247,6 +259,10 @@ private
247
259
  dbp14 "#{кс_имя}"
248
260
 
249
261
  @кс[:имяна] << кс_имя
262
+ @кс[:свойства][кс_имя] = {}
263
+ [ 'описаніе' ].each do |свойство|
264
+ @кс[:свойства][кс_имя][свойство.to_sym] = кс[свойство] if кс[свойство]
265
+ end
250
266
 
251
267
  ширь_б_н = []
252
268
  ширь_н = []
@@ -399,6 +415,15 @@ public
399
415
  end
400
416
  end
401
417
 
418
+ def кодачицы
419
+ пл = {}
420
+ @кс[:имяна].each do |име|
421
+ о = @кс[:свойства][име][:описаніе]
422
+ пл[име] = о[язы.to_s].to_s if о
423
+ end
424
+ пл
425
+ end
426
+
402
427
  def кака_кода(писмя)
403
428
  писмя = писмя.to_s
404
429
  вѣса_сл = {}
@@ -1,3 +1,3 @@
1
1
  class Priehlazx
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -210,6 +210,17 @@ private
210
210
  nil
211
211
  end
212
212
 
213
+ def язы
214
+ case ENV['LANG'] || ENV['LC_CTYPE']
215
+ when /^ru/
216
+ :ру
217
+ when /^en/
218
+ :ан
219
+ else
220
+ :ру
221
+ end
222
+ end
223
+
213
224
  def initialize
214
225
  кс_i = 0
215
226
  сѣтка = {}
@@ -221,6 +232,7 @@ private
221
232
  :сѣтка => сѣтка, :имяна => [],
222
233
  :буквы => буквы, :знаци => знаци,
223
234
  :правило => {}, :правило_б => {},
235
+ :свойства => {},
224
236
  }
225
237
 
226
238
  home = begin
@@ -247,6 +259,10 @@ private
247
259
  dbp14 "#{кс_имя}"
248
260
 
249
261
  @кс[:имяна] << кс_имя
262
+ @кс[:свойства][кс_имя] = {}
263
+ [ 'описаніе' ].each do |свойство|
264
+ @кс[:свойства][кс_имя][свойство.to_sym] = кс[свойство] if кс[свойство]
265
+ end
250
266
 
251
267
  ширь_б_н = []
252
268
  ширь_н = []
@@ -399,6 +415,15 @@ public
399
415
  end
400
416
  end
401
417
 
418
+ def кодачицы
419
+ пл = {}
420
+ @кс[:имяна].each do |име|
421
+ о = @кс[:свойства][име][:описаніе]
422
+ пл[име] = о[язы.to_s].to_s if о
423
+ end
424
+ пл
425
+ end
426
+
402
427
  def кака_кода(писмя)
403
428
  писмя = писмя.to_s
404
429
  вѣса_сл = {}
@@ -1,4 +1,7 @@
1
1
  имя: UTF8/HIP
2
+ описаніе:
3
+ ру: Независимое представленіе церковныхъ, древнеславянскихъ и древнегрѣческихъ текстовъ на основѣ 8-битной обобщенной кодировки
4
+ ан: Invariant representation of church, old-slavic, and old-greek texts, based on UTF 8-bit coding
2
5
  знаци:
3
6
  въводъ: ѯA
4
7
  пробѣлъ: ѯ20
@@ -1,4 +1,7 @@
1
1
  имя: UTF8/TR-CYR-S
2
+ описаніе:
3
+ ру: Упрощённое представленіе кириллическихъ знаковъ латиницею на основѣ 8-битной обобщенной кодировки
4
+ ан: Simplified russian translit coding, based on UTF 8-bit coding
2
5
  знаци:
3
6
  въводъ: ѯA
4
7
  пробѣлъ: ѯ20
@@ -1,4 +1,7 @@
1
- имя: UTF8
1
+ имя: UTF8/TR-CYR
2
+ описаніе:
3
+ ру: Представленіе кириллическихъ знаковъ латиницею на основѣ 8-битной обобщенной кодировки
4
+ ан: Russian translit coding, based on UTF 8-bit coding
2
5
  знаци:
3
6
  въводъ: ѯA
4
7
  пробѣлъ: ѯ20
@@ -65,38 +68,38 @@
65
68
  Иже,чажесь: Ѝ,Ѝ
66
69
  Икъ,кратьцо: Ў,Ў
67
70
  Дже: Џ
68
- Азъ:
69
- Буки:
70
- Вѣдѣ:
71
- Глаголь:
72
- Добро:
73
- Есть:
74
- Живете:
75
- Земля:
76
- Иже:
77
- Иже,кратьцо:
78
- Како:
79
- Люди:
80
- Мыслете:
81
- Нашъ:
82
- Онъ:
83
- Покои:
84
- Рьцы:
85
- Слово:
86
- Твердо:
87
- Икъ:
88
- Фертъ:
89
- Хѣръ:
90
- Цы:
91
- Червь:
92
- Ша:
93
- Ща:
94
- Еръ:
95
- Еры:
96
- Ерь:
97
- Это:
98
- Юсъ:
99
- Я:
71
+ Азъ: A
72
+ Буки: B
73
+ Вѣдѣ: V
74
+ Глаголь: Hq,HQ
75
+ Добро: D
76
+ Есть: E
77
+ Живете: Zx,ZX
78
+ Земля: Z
79
+ Иже: I
80
+ Иже,кратьцо: J
81
+ Како: K
82
+ Люди: L
83
+ Мыслете: M
84
+ Нашъ: N
85
+ Онъ: O
86
+ Покои: P
87
+ Рьцы: R
88
+ Слово: S
89
+ Твердо: T
90
+ Икъ: U
91
+ Фертъ: F
92
+ Хѣръ: H
93
+ Цы: C
94
+ Червь: Cx,CX
95
+ Ша: Sx,SX
96
+ Ща: Wx, WX
97
+ Еръ: Au,Au
98
+ Еры: Y
99
+ Ерь: Ei,EI
100
+ Это: Ex,EX
101
+ Юсъ: Ju,Ju
102
+ Я: Q
100
103
  азъ: a
101
104
  буки: b
102
105
  вѣдѣ: v
@@ -123,41 +126,18 @@
123
126
  червь: cx
124
127
  ша: sx
125
128
  шта: wx
126
- еръ:
129
+ еръ: au
127
130
  еры: y
128
- ерь: "'"
129
- это:
130
- юсъ:
131
- я: ja
132
- есть,чажесь:
131
+ ерь: ei
132
+ это: ex
133
+ юсъ: ju
134
+ я: q
135
+ Я: Aq,AQ
133
136
  есть,двокрапка: jo
134
137
  дже: gx
135
- гье:
136
- есть шыръ:
137
- ѕело:
138
- і,крапка:
139
- і,двокрапка:
140
- ꙇі:
141
- лье:
142
- нье:
143
- тше:
144
- кье:
145
- иже,чажесь:
146
- икъ,кратьцо:
147
- дже:
148
138
  Ѣдь: Ie,IE
149
139
  ѣдь: ie
150
- Ꙇесть:
151
- ꙇесть:
152
- Юсъ малъ:
153
- юсъ малъ:
154
- Ꙇюсъ малъ:
155
- ꙇюсъ малъ:
156
- Юсъ вель:
157
- юсъ вель:
158
- Ꙇюсъ вель:
159
- ꙇюсъ вель:
160
- Ксы: X
161
- ксы: x
140
+ Ксы: XX,Xx
141
+ ксы: xx
162
142
  Глаголь твердъ: G
163
143
  глаголь твердъ: g
@@ -1,4 +1,7 @@
1
1
  имя: UCS8
2
+ описаніе:
3
+ ру: Обобщённая 8-битная церковнославянская кодировка
4
+ ан: Unified 8-bit church-slavonic codepage
2
5
  знаци:
3
6
  въводъ: ѯA
4
7
  пробѣлъ: ѯ20
@@ -1,4 +1,7 @@
1
1
  имя: UTF8
2
+ описаніе:
3
+ ру: 8-битная обобщенная кодировка, использующая многобайтныя послѣдовательности
4
+ ан: 8-bit coding that uses multi-byte sequences
2
5
  знаци:
3
6
  въводъ: ѯA
4
7
  пробѣлъ: ѯ20
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.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-03-30 00:00:00.000000000 +04:00
12
+ date: 2011-03-31 00:00:00.000000000 +04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rdoba
17
- requirement: &69571850 !ruby/object:Gem::Requirement
17
+ requirement: &69572160 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *69571850
25
+ version_requirements: *69572160
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: bundler
28
- requirement: &69571620 !ruby/object:Gem::Requirement
28
+ requirement: &69571930 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 1.0.0
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *69571620
36
+ version_requirements: *69571930
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rspec
39
- requirement: &69571390 !ruby/object:Gem::Requirement
39
+ requirement: &69571700 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,7 +44,7 @@ dependencies:
44
44
  version: 2.0.1
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *69571390
47
+ version_requirements: *69571700
48
48
  description: priehlazx is utility and ruby library to convert a char and text to a
49
49
  specific codepage
50
50
  email: