rdoba 0.9.3 → 0.9.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.
@@ -1,266 +1,305 @@
1
- #coding: utf-8
2
- Допустим( /ꙇє примѣнена подпримѣсь \.([^\s]+) бисера рдоба/i ) do |подпримѣсь|
3
- require 'rdoba'
4
- case подпримѣсь
5
- when 'пуздро'
6
- rdoba :mixin => [ :case ]
7
- when 'обратка'
8
- rdoba :mixin => [ :reverse ]
9
- when 'ли_пущь'
10
- rdoba :mixin => [ :empty ]
11
- when 'во_сл'
12
- rdoba :mixin => [ :to_h ]
13
- when 'сравнена'
14
- rdoba :mixin => [ :compare ]
15
- when 'режь_по'
16
- rdoba :mixin => [ :split_by ]
17
- when 'жди_ьже'
18
- rdoba :mixin => [ :wait_if ]
19
- when 'время'
20
- rdoba :mixin => [ :time ]
21
- when 'пробь'
22
- rdoba :mixin => [ :try ]
23
- else
24
- raise ; end ; end
1
+ # frozen_string_literal: true
2
+
3
+ Допустим(/ꙇє примѣнена подпримѣсь \.([^\s]+) бисера рдоба/i) do |подпримѣсь|
4
+ require 'rdoba'
5
+ case подпримѣсь
6
+ when 'пуздро'
7
+ rdoba mixin: [:case]
8
+ when 'обратка'
9
+ rdoba mixin: [:reverse]
10
+ when 'ли_пущь'
11
+ rdoba mixin: [:empty]
12
+ when 'во_сл'
13
+ rdoba mixin: [:to_h]
14
+ when 'сравнена'
15
+ rdoba mixin: [:compare]
16
+ when 'режь_по'
17
+ rdoba mixin: [:split_by]
18
+ when 'жди_ьже'
19
+ rdoba mixin: [:wait_if]
20
+ when 'время'
21
+ rdoba mixin: [:time]
22
+ when 'пробь'
23
+ rdoba mixin: [:try]
24
+ else
25
+ raise
26
+ end
27
+ end
25
28
 
26
29
  Допустим(/^у нас есть набор чисел$/) do
27
- @набор = [ 1, 2, 3, 4, 5, 6, 7, 8 ] ; end
28
-
29
- Если(/къ (кирилическу|латыньску) слову въ (верхнемъ|нижнемъ|смѣшанѣмъ) пуздрѣ ꙇє примѣненъ приꙇомъ :(ниспуздри|воспуздри)/) do | ꙇезикъ, пуздро, приꙇомъ |
30
- стр = if ꙇезикъ =~ /кирилическу/
31
- if пуздро =~ /верхнемъ/
32
- 'КИРИЛИЧЕСКЫ БУКЫ ЗРИЙ СІИ: Ѡ И Ꙍ'
33
- elsif пуздро =~ /нижнемъ/
34
- 'кирилическы букы зрий сіи: ѡ и ꙍ'
35
- else
36
- 'КиРиЛиЧеСкЫ бУкЫ зРиЙ сІи: Ѡ и Ꙍ' ; end
37
- else
38
- if пуздро =~ /верхнемъ/
39
- 'LATIN LETTERS SEE THE FOLLOWING: ÆǞ'
40
- elsif пуздро =~ /нижнемъ/
41
- 'latin letters see the following: æǟ'
42
- else
43
- 'LaTiN lEtTeRs SeE tHe FoLlOwInG: æǞ' ; end ; end
44
-
45
- @плодъ = ( приꙇомъ =~ /ниспуздри/ ) && стр.downcase || стр.upcase ; end
46
-
47
- Если(/^рассечём его на чётные и нечётные$/) do
48
- ( @чётъ, @нечётъ ) = @набор.split_by { |x| x % 2 == 0 } ; end
30
+ @набор = [1, 2, 3, 4, 5, 6, 7, 8]
31
+ end
49
32
 
50
- Если(/^спробуем вызвать метод :qwer пущя$/) do
51
- @плодъ = nil.try( :qwer ) ; end
33
+ Если(
34
+ /къ (кирилическу|латыньску) слову въ (верхнемъ|нижнемъ|смѣшанѣмъ) пуздрѣ ꙇє примѣненъ приꙇомъ :(ниспуздри|воспуздри)/
35
+ ) do |ꙇезикъ, пуздро, приꙇомъ|
36
+ стр =
37
+ if /кирилическу/.match?(ꙇезикъ)
38
+ if /верхнемъ/.match?(пуздро)
39
+ 'КИРИЛИЧЕСКЫ БУКЫ ЗРИЙ СІИ: Ѡ И Ꙍ'
40
+ elsif /нижнемъ/.match?(пуздро)
41
+ 'кирилическы букы зрий сіи: ѡ и ꙍ'
42
+ else
43
+ 'КиРиЛиЧеСкЫ бУкЫ зРиЙ сІи: Ѡ и Ꙍ'
44
+ end
45
+ elsif /верхнемъ/.match?(пуздро)
46
+ 'LATIN LETTERS SEE THE FOLLOWING: ÆǞ'
47
+ elsif /нижнемъ/.match?(пуздро)
48
+ 'latin letters see the following: æǟ'
49
+ else
50
+ 'LaTiN lEtTeRs SeE tHe FoLlOwInG: æǞ'
51
+ end
52
52
 
53
- То(/^(кирилическо|латыньско) слово имаꙇє буквы въ (нижнемъ|верхнемъ) пуздрѣ$/) do | ꙇезикъ, пуздро |
54
- плодъ = if ꙇезикъ =~ /кирилическо/
55
- ( пуздро =~ /верхнемъ/ ) &&
56
- 'КИРИЛИЧЕСКЫ БУКЫ ЗРИЙ СІИ: Ѡ И Ꙍ'||
57
- 'кирилическы букы зрий сіи: ѡ и ꙍ'
58
- else
59
- ( пуздро =~ /верхнемъ/ ) &&
60
- 'LATIN LETTERS SEE THE FOLLOWING: ÆǞ' ||
61
- 'latin letters see the following: æǟ' ; end
53
+ @плодъ = (приꙇомъ =~ /ниспуздри/) && стр.downcase || стр.upcase
54
+ end
62
55
 
63
- if @плодъ != плодъ
64
- raise "Плодна Страза со значенꙇемъ '#{@плодъ}' должна имѣти значенꙇе " \
65
- "'#{плодъ}'" ; end ; end
56
+ Если(/^рассечём его на чётные и нечётные$/) do
57
+ @чётъ, @нечётъ = @набор.split_by { |x| x.even? }
58
+ end
66
59
 
60
+ Если(/^спробуем вызвать метод :qwer пущя$/) do
61
+ @плодъ = nil.try(:qwer)
62
+ end
67
63
 
64
+ То(/^(кирилическо|латыньско) слово имаꙇє буквы въ (нижнемъ|верхнемъ) пуздрѣ$/) do |ꙇезикъ, пуздро|
65
+ плодъ =
66
+ if /кирилическо/.match?(ꙇезикъ)
67
+ (пуздро =~ /верхнемъ/) && 'КИРИЛИЧЕСКЫ БУКЫ ЗРИЙ СІИ: Ѡ И Ꙍ' || 'кирилическы букы зрий сіи: ѡ и ꙍ'
68
+ else
69
+ (пуздро =~ /верхнемъ/) && 'LATIN LETTERS SEE THE FOLLOWING: ÆǞ' || 'latin letters see the following: æǟ'
70
+ end
68
71
 
72
+ if @плодъ != плодъ
73
+ raise "Плодна Страза со значенꙇемъ '#{@плодъ}' должна имѣти значенꙇе " \
74
+ "'#{плодъ}'"
75
+ end
76
+ end
69
77
 
70
- То(/^Стразовъ приꙇомъ :обратка( сѫ кракомъ| сѫ доведомъ)? повратє обратну Стразу$/) do | доведъ |
71
- требе = case доведъ
72
- when nil
73
- "акортс"
74
- when /кракомъ/u
78
+ То(/^Стразовъ приꙇомъ :обратка( сѫ кракомъ| сѫ доведомъ)? повратє обратну Стразу$/) do |доведъ|
79
+ требе =
80
+ case доведъ
81
+ when nil
82
+ 'акортс'
83
+ when /кракомъ/u
75
84
  "\xB0\xD0\xBA\xD0\xBE\xD0\x80\xD1\x82\xD1\x81\xD1"
76
- when /доведомъ/u
77
- "карост"
78
- end
85
+ when /доведомъ/u
86
+ 'карост'
87
+ end
79
88
 
80
- исходъ = case доведъ
81
- when nil
89
+ исходъ =
90
+ case доведъ
91
+ when nil
82
92
  'строка'.reverse
83
- when /кракомъ/u
93
+ when /кракомъ/u
84
94
  'строка'.reverse :byte_by_byte
85
- when /доведомъ/u
95
+ when /доведомъ/u
86
96
  'строка'.reverse 2
87
- end
97
+ end
88
98
 
89
- if исходъ != требе
90
- raise "Ложнъ исходъ '#{исходъ}' ꙇє повратнъ отъ приꙇома :обратка#{доведъ}, требуꙇє '#{требе}'" ; end
99
+ if исходъ != требе
100
+ raise "Ложнъ исходъ '#{исходъ}' ꙇє повратнъ отъ приꙇома :обратка#{доведъ}, требуꙇє '#{требе}'"
101
+ end
91
102
  end
92
103
 
93
- То(/^приꙇомъ :ли_пущь рода (пущь|лжа|нове вещи) повратє (вѣрнъ|лжъ)$/) do | вещь, поврать |
94
- поврать = ( поврать == 'вѣрнъ' ) && true || false
95
- исходъ = case вещь
96
- when 'пущь'
104
+ То(/^приꙇомъ :ли_пущь рода (пущь|лжа|нове вещи) повратє (вѣрнъ|лжъ)$/) do |вещь, поврать|
105
+ поврать = (поврать == 'вѣрнъ') && true || false
106
+ исходъ =
107
+ case вещь
108
+ when 'пущь'
97
109
  nil.empty? == поврать
98
- when 'лжа'
110
+ when 'лжа'
99
111
  false.empty? == поврать
100
- when 'нове вещи'
112
+ when 'нове вещи'
101
113
  Object.new.empty? == поврать
102
- end
103
- if !исходъ
104
- raise "Ложнъ исходъ ꙇє повратнъ отъ приꙇома :ли_пущь рода #{вещь}" ; end
114
+ end
115
+ unless исходъ
116
+ raise "Ложнъ исходъ ꙇє повратнъ отъ приꙇома :ли_пущь рода #{вещь}"
117
+ end
105
118
  end
106
119
 
107
-
108
- Если(/^(ровнъ|двуглубнъ|триглубнъ) наборъ( сѫ одинакыми частьми)? ꙇє пречиненъ во словникъ( приꙇомомъ :во_сл сѫ клѵчемъ :кромѣ_двоꙇниковъ)?$/) do | видъ, одинакъ, клѵчь |
109
- @вещь =
110
- case видъ
111
- when 'ровнъ'
112
- [ 'aa', 0, 'bb', 1 ].to_h
113
- when 'двуглубнъ'
120
+ Если(
121
+ /^(ровнъ|двуглубнъ|триглубнъ) наборъ( сѫ одинакыми частьми)? ꙇє пречиненъ во словникъ( приꙇомомъ :во_сл сѫ клѵчемъ :кромѣ_двоꙇниковъ)?$/
122
+ ) do |видъ, одинакъ, клѵчь|
123
+ @вещь =
124
+ case видъ
125
+ when 'ровнъ'
126
+ ['aa', 0, 'bb', 1].to_h
127
+ when 'двуглубнъ'
114
128
  if одинакъ
115
- if клѵчь
116
- [ [ 'aa', 0, ], [ 'aa', 0 ] ].to_h( :save_unique => true )
117
- else
118
- [ [ 'aa', 0, ], [ 'aa', 0 ] ].to_h ; end
129
+ if клѵчь
130
+ [['aa', 0], ['aa', 0]].to_h(save_unique: true)
131
+ else
132
+ [['aa', 0], ['aa', 0]].to_h
133
+ end
119
134
  else
120
- [ [ 'aa', 0, ], [ 'bb', 1 ] ].to_h ; end
121
- when 'триглубнъ'
122
- [ [ 'aa', 0, 1, ], [ 'bb', [ 1, 0 ] ] ].to_h
123
- end
135
+ [['aa', 0], ['bb', 1]].to_h
136
+ end
137
+ when 'триглубнъ'
138
+ [['aa', 0, 1], ['bb', [1, 0]]].to_h
139
+ end
124
140
  end
125
141
 
126
- То(/^тъꙇи имѣꙇє ровнъ словникъ сѫ (пущими |ровнѣми |двуглубнѣми )?значѣми$/) do | видъ |
127
- @схъ =
128
- if видъ =~ /пущими/u
129
- { "aa" => nil, 0 => nil, "bb" => nil, 1 => nil }
130
- elsif видъ =~ /ровнѣми/u
131
- { "aa" => 0, "bb" => 1 }
132
- else
133
- { "aa" => [ 0, 1 ], "bb" => [ 1, 0 ] } ; end
134
-
135
- if @вещь != @схъ
136
- raise "Наборъ '#{@вещь}' требуꙇє быти '#{@схъ}'" ; end
142
+ То(/^тъꙇи имѣꙇє ровнъ словникъ сѫ (пущими |ровнѣми |двуглубнѣми )?значѣми$/) do |видъ|
143
+ @схъ =
144
+ if /пущими/u.match?(видъ)
145
+ { 'aa' => nil, 0 => nil, 'bb' => nil, 1 => nil }
146
+ elsif /ровнѣми/u.match?(видъ)
147
+ { 'aa' => 0, 'bb' => 1 }
148
+ else
149
+ { 'aa' => [0, 1], 'bb' => [1, 0] }
150
+ end
151
+
152
+ if @вещь != @схъ
153
+ raise "Наборъ '#{@вещь}' требуꙇє быти '#{@схъ}'"
154
+ end
137
155
  end
138
156
 
139
- То(/^тъꙇи имѣꙇє ровнъ словникъ сѫ (однимъ|двами) двуглубн(?:ѣмъ|ѣмы) знач(?:ѣмъ|ѣмы)$/) do | видъ |
140
- @схъ =
141
- if видъ =~ /двами/
142
- { "aa" => [ 0, 0 ] }
143
- else
144
- { "aa" => [ 0 ] } ; end
157
+ То(/^тъꙇи имѣꙇє ровнъ словникъ сѫ (однимъ|двами) двуглубн(?:ѣмъ|ѣмы) знач(?:ѣмъ|ѣмы)$/) do |видъ|
158
+ @схъ =
159
+ if /двами/.match?(видъ)
160
+ { 'aa' => [0, 0] }
161
+ else
162
+ { 'aa' => [0] }
163
+ end
145
164
 
146
- if @вещь != @схъ
147
- raise "Наборъ '#{@вещь}' требуꙇє быти '#{@схъ}'" ; end
165
+ if @вещь != @схъ
166
+ raise "Наборъ '#{@вещь}' требуꙇє быти '#{@схъ}'"
167
+ end
148
168
  end
149
169
 
150
170
  Если(/^имѣмы двѣ Стразы$/) do
151
- @стры = [ 'а҆́гнецъ', 'а҆гкѵ́ра' ] ; end
171
+ @стры = %w[а҆́гнецъ а҆гкѵ́ра]
172
+ end
152
173
 
153
- То(/^приꙇомъ :сравнена двухъ Стразъ( сѫ презоромъ надъстрочниковъ( ꙇакъ словникъ)?)? повратє (безъ )?одна$/) do | доведъ, подобье, знакъ |
154
- поврать = ( знакъ =~ /безъ/u ) && -1 || 1
174
+ То(
175
+ /^приꙇомъ :сравнена двухъ Стразъ( сѫ презоромъ надъстрочниковъ( ꙇакъ словникъ)?)? повратє (безъ )?одна$/
176
+ ) do |доведъ, подобье, знакъ|
177
+ поврать = (знакъ =~ /безъ/u) && -1 || 1
155
178
 
156
- исходъ =
157
- if доведъ
179
+ исходъ =
180
+ if доведъ
158
181
  if подобье
159
- @стры[ 0 ].compare_to( @стры[ 1 ], :ignore_diacritics => true) == поврать
182
+ @стры[0].compare_to(@стры[1], ignore_diacritics: true) == поврать
160
183
  else
161
- @стры[ 0 ].compare_to( @стры[ 1 ], :ignore_diacritics) == поврать ; end
162
- else
163
- @стры[ 0 ].compare_to( @стры[ 1 ] ) == поврать ; end
184
+ @стры[0].compare_to(@стры[1], :ignore_diacritics) == поврать
185
+ end
186
+ else
187
+ @стры[0].compare_to(@стры[1]) == поврать
188
+ end
164
189
 
165
- if !исходъ
166
- raise "Приꙇомъ :сравнена двухъ Стразъ#{доведъ}#{подобье} требуꙇє повратъти '#{поврать}'" ; end
190
+ unless исходъ
191
+ raise "Приꙇомъ :сравнена двухъ Стразъ#{доведъ}#{подобье} требуꙇє повратъти '#{поврать}'"
192
+ end
167
193
  end
168
194
 
169
195
  То(/^получим два набора чётных и нечётных чисел$/) do
170
- expect( @чётъ ).to be_eql( [ 2, 4, 6, 8 ] )
171
- expect( @нечётъ ).to be_eql( [ 1, 3, 5, 7 ] ) ; end
196
+ expect(@чётъ).to be_eql([2, 4, 6, 8])
197
+ expect(@нечётъ).to be_eql([1, 3, 5, 7])
198
+ end
172
199
 
173
200
  То(/^той вернёт пущь$/) do
174
- expect( @плодъ ).to be_nil ; end
201
+ expect(@плодъ).to be_nil
202
+ end
175
203
 
176
204
  Если(/^спробуем подождать мало, чтобы условие не выполнилось$/) do
177
- @плодъ = wait_if( 1 ) { false } ; end
205
+ @плодъ = wait_if(1) { false }
206
+ end
178
207
 
179
208
  Если(/^спробуем подождать мало, чтобы условие выполнилось$/) do
180
- @плодъ = wait_if( 1 ) { true } ; end
209
+ @плодъ = wait_if(1) { true }
210
+ end
181
211
 
182
212
  Если(/^спробуем подождать долго, чтобы условие выполнилось$/) do
183
- @плодъ =
184
- begin
185
- Timeout.timeout( 2 ) do
186
- wait_if( 10 ) { true } ; end
187
- rescue Timeout::Error
188
- nil; end ; end
213
+ @плодъ =
214
+ begin
215
+ Timeout.timeout(2) do
216
+ wait_if(10) { true }
217
+ end
218
+ rescue Timeout::Error
219
+ nil
220
+ end
221
+ end
189
222
 
190
223
  То(/^недождёмся$/) do
191
- expect( @плодъ ).to be_nil ; end
224
+ expect(@плодъ).to be_nil
225
+ end
192
226
 
193
227
  То(/^той вернёт ложно$/) do
194
- expect( @плодъ ).to be_falsey ; end
228
+ expect(@плодъ).to be_falsey
229
+ end
195
230
 
196
231
  То(/^той вернёт исте$/) do
197
- expect( @плодъ ).to be_truthy ; end
198
-
232
+ expect(@плодъ).to be_truthy
233
+ end
199
234
 
200
235
  Если(/^спробуем вызвать метод :mtime кута временного$/) do
201
- @кут = tmpfile
202
- @время = File.mtime( @кут ) ; end
236
+ @кут = tmpfile
237
+ @время = File.mtime(@кут)
238
+ end
203
239
 
204
240
  Если(/^спробуем вызвать метод :atime кута временного$/) do
205
- @кут = tmpfile
206
- @время = File.atime( @кут ) ; end
241
+ @кут = tmpfile
242
+ @время = File.atime(@кут)
243
+ end
207
244
 
208
245
  Если(/^спробуем вызвать метод :ctime кута временного$/) do
209
- @кут = tmpfile
210
- @время = File.ctime( @кут ) ; end
246
+ @кут = tmpfile
247
+ @время = File.ctime(@кут)
248
+ end
211
249
 
212
250
  То(/^той вернёт верно время/) do
213
- время = @время.strftime( "%Y-%m-%d %H:%M:%S.%N %z" )
214
- expect( время ).to be_eql( `stat -c %y #{@кут}`.strip ) ; end
251
+ время = @время.strftime('%Y-%m-%d %H:%M:%S.%N %z')
252
+ expect(время).to be_eql(`stat -c %y #{@кут}`.strip)
253
+ end
215
254
 
216
255
  Если(/^ꙇє примѣнена подпримѣсь невѣрна бисера рдоба$/) do
217
- @проц = Proc.new { rdoba :mixin => [ :false ] } ; end
256
+ @проц = proc { rdoba mixin: [:false] }
257
+ end
218
258
 
219
259
  То(/^исключение невѣрнѣ опции вызвано будетъ$/) do
220
- expect{ @проц.call }.to raise_error( Rdoba::Mixin::InvalidOption ) ; end
221
-
222
-
223
- =begin
224
- #!/usr/bin/ruby -KU
225
-
226
- if $0 == __FILE__
227
- p s.to_res
228
- [1,2,3,4,5].each_comby do |c|
229
- p c
230
- end
231
-
232
- len = 4
233
- value = 100
234
- p sprintf("%.*X", len, value )
235
-
236
- s = ' 1221 eeee 4564 wwww ' + 258.to_p
237
- ppp = s.scanf(' %d %s %d %s %.2+c')
238
- p ppp
239
- p 258.to_p.to_i(String::BE)
240
-
241
- null = nil
242
- p null.class, null
243
- null <<= 'qweqweqweqwe'
244
- p null.class, null
245
- null << 'qweqweqweqwe'
246
- p null.class, null
247
- i = 12
248
- p sprintf("0x%X", i)
249
- p sprintf("%.3X", i)
250
-
251
- p '----------'
252
-
253
- str = <<STR
254
- <font size="4" face="Irmologion Ucs">и3зhде
255
- повелёніе t кeсарz ѓvгуста, написaти всю2
256
- вселeнную</font>
257
- STR
258
-
259
-
260
- str = '/font><font size="4">III</font><i> </i>греч.<font size="4"><i></i> </font><font size="4" face="Irmologion Ucs">Мёсzца ѓvгуста въ Gi-й дeнь. Слyжба с™и1телю и3 чудотв0рцу тЂхwну, є3пcкпу вор0нежскому.</font>13 августа, Тихона Воронежского, заголовок службы m_aug\13p.hip'
261
- re = /<font size="4" face="Irmologion Ucs">([ -"'-\?A-BD-HJ-\[\]`-hj-\}¤¦-§©«-®±µ-·»Ё-ЌЎ-яё-ќў-џҐ-ґ–-—‘-‚“-„†-•…‰‹-›€№™∙]+?)<\/font>/
262
-
263
- p(str.match re)
260
+ expect { @проц.call }.to raise_error(Rdoba::Mixin::InvalidOption)
264
261
  end
265
262
 
266
- =end
263
+ # #!/usr/bin/ruby -KU
264
+ #
265
+ # if $0 == __FILE__
266
+ # p s.to_res
267
+ # [1,2,3,4,5].each_comby do |c|
268
+ # p c
269
+ # end
270
+ #
271
+ # len = 4
272
+ # value = 100
273
+ # p sprintf("%.*X", len, value )
274
+ #
275
+ # s = ' 1221 eeee 4564 wwww ' + 258.to_p
276
+ # ppp = s.scanf(' %d %s %d %s %.2+c')
277
+ # p ppp
278
+ # p 258.to_p.to_i(String::BE)
279
+ #
280
+ # null = nil
281
+ # p null.class, null
282
+ # null <<= 'qweqweqweqwe'
283
+ # p null.class, null
284
+ # null << 'qweqweqweqwe'
285
+ # p null.class, null
286
+ # i = 12
287
+ # p sprintf("0x%X", i)
288
+ # p sprintf("%.3X", i)
289
+ #
290
+ # p '----------'
291
+ #
292
+ # str = <<STR
293
+ # <font size="4" face="Irmologion Ucs">и3зhде
294
+ # повелёніе t кeсарz ѓvгуста, написaти всю2
295
+ # вселeнную</font>
296
+ # STR
297
+ #
298
+
299
+ #
300
+ # str = '/font><font size="4">III</font><i> </i>греч.<font size="4"><i></i> </font><font size="4" face="Irmologion Ucs">Мёсzца ѓvгуста въ Gi-й дeнь. Слyжба с™и1телю и3 чудотв0рцу тЂхwну, є3пcкпу вор0нежскому.</font>13 августа, Тихона Воронежского, заголовок службы m_aug\13p.hip'
301
+ # re = /<font size="4" face="Irmologion Ucs">([ -"'-\?A-BD-HJ-\[\]`-hj-\}¤¦-§©«-®±µ-·»Ё-ЌЎ-яё-ќў-џҐ-ґ–-—‘-‚“-„†-•…‰‹-›€№™∙]+?)<\/font>/
302
+ #
303
+ # p(str.match re)
304
+ # end
305
+ #