multi_typograf 0.0.2
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/.gitignore +18 -0
- data/.travis.yml +10 -0
- data/Gemfile +8 -0
- data/LICENSE.txt +22 -0
- data/README.md +49 -0
- data/Rakefile +53 -0
- data/lib/multi_typograf.rb +112 -0
- data/lib/multi_typograf/adapters/art_typograf.rb +13 -0
- data/lib/multi_typograf/adapters/typograf.rb +13 -0
- data/lib/multi_typograf/adapters/typographer.rb +11 -0
- data/lib/multi_typograf/adapters/typographica.rb +11 -0
- data/lib/multi_typograf/adapters/typography.rb +12 -0
- data/lib/multi_typograf/filter.rb +12 -0
- data/lib/multi_typograf/version.rb +3 -0
- data/multi_typograf.gemspec +26 -0
- data/report/html_printer.rb +61 -0
- data/report/report_formatter.rb +66 -0
- data/report/report_shared_example.rb +397 -0
- data/report/report_spec.rb +12 -0
- data/report/template/bak.png +0 -0
- data/report/template/bootstrap.min.css +206 -0
- data/report/template/index.html +172 -0
- data/report/template/jquery.slabtext.min.js +2 -0
- data/report/template/slabtext.css +1 -0
- data/spec/adapter_shared_example.rb +27 -0
- data/spec/helper.rb +19 -0
- data/spec/multi_typograf_spec.rb +78 -0
- metadata +146 -0
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'rspec/core/formatters/base_text_formatter'
|
2
|
+
require File.expand_path('../html_printer', __FILE__)
|
3
|
+
|
4
|
+
class ReportFormatter < RSpec::Core::Formatters::BaseTextFormatter
|
5
|
+
|
6
|
+
def initialize(output)
|
7
|
+
super(output)
|
8
|
+
@printer = HtmlPrinter.new(output)
|
9
|
+
|
10
|
+
# @output = output
|
11
|
+
@adapter = nil
|
12
|
+
@table = {}
|
13
|
+
@table_header = {}
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
def method_missing(m, *a, &b)
|
18
|
+
# no-op
|
19
|
+
end
|
20
|
+
|
21
|
+
public
|
22
|
+
|
23
|
+
def example_group_started(example_group)
|
24
|
+
super(example_group)
|
25
|
+
if example_group.parent_groups.size == 2
|
26
|
+
@adapter = example_group.description
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def example_add(example, val)
|
31
|
+
@table[example.description] ||= {}
|
32
|
+
@table[example.description][@adapter] = val || example.execution_result[:exception].to_s
|
33
|
+
@table_header[@adapter] = true
|
34
|
+
end
|
35
|
+
|
36
|
+
def example_passed(example)
|
37
|
+
example_add(example, true)
|
38
|
+
end
|
39
|
+
|
40
|
+
def example_failed(example)
|
41
|
+
example_add(example, false)
|
42
|
+
# exception = example.metadata[:execution_result][:exception]
|
43
|
+
# exception_details = if exception
|
44
|
+
# {
|
45
|
+
# :message => exception.message,
|
46
|
+
# :backtrace => format_backtrace(exception.backtrace, example).join("\n")
|
47
|
+
# }
|
48
|
+
# else
|
49
|
+
# false
|
50
|
+
# end
|
51
|
+
end
|
52
|
+
|
53
|
+
def dump_summary(duration, example_count, failure_count, pending_count)
|
54
|
+
@printer.print_table(@table, @table_header)
|
55
|
+
|
56
|
+
@printer.print_summary(
|
57
|
+
dry_run?,
|
58
|
+
duration,
|
59
|
+
example_count,
|
60
|
+
failure_count,
|
61
|
+
pending_count
|
62
|
+
)
|
63
|
+
|
64
|
+
@printer.flush
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,397 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
shared_examples_for "an adapter" do |adapter|
|
4
|
+
|
5
|
+
before do
|
6
|
+
begin
|
7
|
+
MultiTypograf.use adapter
|
8
|
+
rescue LoadError
|
9
|
+
pending "Adapter #{adapter} couldn't be loaded (not installed?)"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
OPT = {
|
14
|
+
:use_p => false, :use_br => false, :entity_type => :html,
|
15
|
+
:nowraped => {:nonbsp => 0}, :paragraph => {:insert => 0}, :symbols => 0
|
16
|
+
} unless defined? OPT
|
17
|
+
|
18
|
+
describe '.process' do
|
19
|
+
it 'Удаление лишних пробельных символов и табуляций' do
|
20
|
+
text = "В этом тексте \t много пробелов."
|
21
|
+
text_processed = 'В этом тексте много пробелов.'
|
22
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'Удаление повторяющихся слов' do
|
26
|
+
text = 'При при проверке текста обнаружились обнаружились повторяющиеся слова слова. Слова убраны.'
|
27
|
+
text_processed = 'При проверке текста обнаружились повторяющиеся слова. Слова убраны.'
|
28
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'Расстановка запятых перед а, но' do
|
32
|
+
text = 'Мало написать а запятые кто за тебя расставит. Я же расставлял но похоже часть пропустил.'
|
33
|
+
text_processed = 'Мало написать, а запятые кто за тебя расставит. Я же расставлял, но похоже часть пропустил.'
|
34
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'Расстановка дефиса перед -то, -либо, -нибудь' do
|
38
|
+
text = 'Кто то где то когда то как то что то чем то стукнул. И возможно чего нибудь бы получилось если б кто либо пришел.'
|
39
|
+
text_processed = '<nobr>Кто-то</nobr> <nobr>где-то</nobr> <nobr>когда-то</nobr> <nobr>как-то</nobr> <nobr>что-то</nobr> <nobr>чем-то</nobr> стукнул. И возможно <nobr>чего-нибудь</nobr> бы получилось если б <nobr>кто-либо</nobr> пришел.'
|
40
|
+
# Опять же что - то получилось, но как- то не так.
|
41
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'Расстановка дефиса перед -ка, -де, -кась' do
|
45
|
+
text = 'Возьми ка детка молока. А коль увижу де, что казнь ему мала, повешу тут же всех судей вокруг стола. Поди кась так.'
|
46
|
+
text_processed = '<nobr>Возьми-ка</nobr> детка молока. А коль <nobr>увижу-де</nobr>, что казнь ему мала, повешу тут же всех судей вокруг стола. <nobr>Поди-кась</nobr> так.'
|
47
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'Расстановка дефиса после кое-, кой-' do
|
51
|
+
text = 'Кое как дошли. Кой кого встретили. Кое от кого, кое на чем, кой у кого, кое с чьим.'
|
52
|
+
text_processed = '<nobr>Кое-как</nobr> дошли. <nobr>Кой-кого</nobr> встретили. Кое от кого, кое на чем, кой у кого, кое с чьим.'
|
53
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'Расстановка дефиса перед -таки' do
|
57
|
+
text = 'Секретарь, хотя и чувствовал свое слабое недовольство, все таки радовался наличию таких старушек в активе района. Но хоть и велик был соблазн, я таки успел себя побороть.'
|
58
|
+
text_processed = 'Секретарь, хотя и чувствовал свое слабое недовольство, <nobr>все-таки</nobr> радовался наличию таких старушек в активе района. Но хоть и велик был соблазн, я таки успел себя побороть.'
|
59
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'Расстановка дефиса в предлогах из-за, из-под' do
|
63
|
+
text = 'Из за леса величаво выплывало солнце. Из под развесистой сирени вдруг с лаем выскочила собака.'
|
64
|
+
text_processed = '<nobr>Из-за</nobr> леса величаво выплывало солнце. <nobr>Из-под</nobr> развесистой сирени вдруг с лаем выскочила собака.'
|
65
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'Удаление парных знаков препинания' do
|
69
|
+
text = 'Правда!? Правда!!! Неправда??? Честно?? Честно!! Проехали.. Задумчиво...'
|
70
|
+
text_processed = 'Правда?! Правда!!! Неправда??? Честно? Честно! Проехали. Задумчиво…'
|
71
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'Удаление пробелов перед знаками препинания' do
|
75
|
+
text = 'Некоторые виды деревьев : ель ,сосна , берёза, дуб ; растут в наших лесах .'
|
76
|
+
text_processed = 'Некоторые виды деревьев: ель, сосна, берёза, дуб; растут в наших лесах.'
|
77
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'Расстановка пробелов после знака препинания' do
|
81
|
+
text = 'Так бывает.И вот так...И ещё вот так!..Бывает же???Что поделать. Вывод:верен.'
|
82
|
+
text_processed = 'Так бывает. И вот так… И ещё вот так!.. Бывает же??? Что поделать. Вывод: верен.'
|
83
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'Удаление пробела перед символом процент' do
|
87
|
+
text = '100 %'
|
88
|
+
text_processed = '100%'
|
89
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'Удаление пробелов внутри скобок' do
|
93
|
+
text = 'Текст( ( Внутри ) скобок ).'
|
94
|
+
text_processed = 'Текст((Внутри) скобок).'
|
95
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
96
|
+
end
|
97
|
+
|
98
|
+
# it 'Расстановка пробела перед скобками' do
|
99
|
+
# text = 'Текст(Внутри скобок).'
|
100
|
+
# text_processed = 'Текст (Внутри скобок).'
|
101
|
+
# MultiTypograf.process(text, OPT).should eq text_processed
|
102
|
+
# end
|
103
|
+
|
104
|
+
it 'Выделение прямой речи' do
|
105
|
+
text = '- Я пошёл домой... - Может останешься? - Нет, ухожу.'
|
106
|
+
text_processed = '— Я пошёл домой… — Может останешься? — Нет, ухожу.'
|
107
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'Привязка союзов, предлогов' do
|
111
|
+
text = 'Я бы в лётчики б пошёл, пусть меня научат.'
|
112
|
+
text_processed = 'Я бы в лётчики б пошёл, пусть меня научат.'
|
113
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'Замена x на символ × в размерных единицах' do
|
117
|
+
text = '3х4, 3 х 6'
|
118
|
+
text_processed = '3×4, 3×6'
|
119
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
120
|
+
end
|
121
|
+
|
122
|
+
it 'Замена дробей 1/2, 1/4, 3/4 на соответствующие символы' do
|
123
|
+
text = '1/2, 1/4, 3/4, 123/432'
|
124
|
+
text_processed = '½, ¼, ¾, 123/432'
|
125
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
126
|
+
end
|
127
|
+
|
128
|
+
it 'Замена (R) на символ зарегистрированной торговой марки' do
|
129
|
+
text = 'Coca-Cola(r) - зарегистрированный товарный знак.'
|
130
|
+
text_processed = '<nobr>Coca-Cola</nobr><sup><small>®</small></sup> — зарегистрированный товарный знак.'
|
131
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'Замена (c) на символ копирайт' do
|
135
|
+
text = '(c) Eugene Spearance'
|
136
|
+
text_processed = '© Eugene Spearance'
|
137
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
138
|
+
end
|
139
|
+
|
140
|
+
it 'Замена (tm) на символ торговой марки' do
|
141
|
+
text = 'ВасяПупкин(tm)'
|
142
|
+
text_processed = 'ВасяПупкин™'
|
143
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
144
|
+
end
|
145
|
+
|
146
|
+
it 'Тире в конце строки (стихотворная форма)' do
|
147
|
+
text = %q{Раздобудь к утру ковёр -
|
148
|
+
Шитый золотом узор!..
|
149
|
+
Государственное дело, -
|
150
|
+
Расшибись, а будь добёр!}
|
151
|
+
text_processed = %q{Раздобудь к утру ковёр —<br />\nШитый золотом узор!..<br />\nГосударственное дело, —<br />\nРасшибись, а будь добёр!}
|
152
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
153
|
+
end
|
154
|
+
|
155
|
+
it 'Расстановка знака минус между числами' do
|
156
|
+
text = '123-32'
|
157
|
+
text_processed = '123–32'
|
158
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
159
|
+
end
|
160
|
+
|
161
|
+
it 'Расстановка правильного апострофа в английских текстах' do
|
162
|
+
text = "don't"
|
163
|
+
text_processed = 'don’t'
|
164
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
165
|
+
end
|
166
|
+
|
167
|
+
it 'Замена символа параграф с привязкой к числу' do
|
168
|
+
text = '§32, §IV'
|
169
|
+
text_processed = '§ 32, § IV'
|
170
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
171
|
+
end
|
172
|
+
|
173
|
+
it 'Замена символа номер с привязкой к числу' do
|
174
|
+
text = '№15Ф, №34/25'
|
175
|
+
text_processed = '№ 15Ф, № 34/25'
|
176
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
177
|
+
end
|
178
|
+
|
179
|
+
it 'Расстановка правильных «тройных» кавычек' do
|
180
|
+
text = 'Она добавила: "И цвет мой самый любимый - "эсмеральда"".'
|
181
|
+
text_processed = 'Она добавила: «И цвет мой самый любимый — „эсмеральда“».'
|
182
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
183
|
+
end
|
184
|
+
|
185
|
+
# it 'Расстановка вложенных пар кавычек' do
|
186
|
+
# text = ''
|
187
|
+
# text_processed = ''
|
188
|
+
# MultiTypograf.process(text, OPT).should eq text_processed
|
189
|
+
# end
|
190
|
+
|
191
|
+
it 'Расстановка пробелов и привязка в денежных сокращениях' do
|
192
|
+
text = '10,34руб., 23тыс.долл., 64 млн.евро, 34.3€, 56$, 3,65уе'
|
193
|
+
text_processed = '10,34 руб., 23 тыс. долл., 64 млн. евро, 34.3 €, 56 $, 3,65 у.е.'
|
194
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
195
|
+
end
|
196
|
+
|
197
|
+
it 'Объединение сокращений и т.д., и т.п., в т.ч.' do
|
198
|
+
text = 'Лес, газ, нефть и тд., и т.п.. Перины, подушки в тч. подушки-думки.'
|
199
|
+
text_processed = 'Лес, газ, нефть <nobr>и т. д.</nobr>, <nobr>и т. п.</nobr> Перины, подушки <nobr>в т. ч.</nobr> <nobr>подушки-думки</nobr>.'
|
200
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
201
|
+
end
|
202
|
+
|
203
|
+
it 'Расстановка пробелов перед сокращениями см., им.' do
|
204
|
+
text = 'Данные изложены в таблице см.цветной вкладыш. Дом им.Пушкина.'
|
205
|
+
text_processed = 'Данные изложены в таблице см. цветной вкладыш. Дом им. Пушкина.'
|
206
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
207
|
+
end
|
208
|
+
|
209
|
+
it 'Расстановка пробелов перед сокращениями гл., стр., рис., илл.' do
|
210
|
+
text = 'Инструкцию см. гл. 8, стр.34, рис.3 или илл.3.'
|
211
|
+
text_processed = 'Инструкцию см. гл. 8, стр. 34, рис. 3 или илл. 3.'
|
212
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
213
|
+
end
|
214
|
+
|
215
|
+
it 'Объединение сокращений и др.' do
|
216
|
+
text = 'Оля, Иван, Олег и др. ребята.'
|
217
|
+
text_processed = 'Оля, Иван, Олег и др. ребята.'
|
218
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
219
|
+
end
|
220
|
+
|
221
|
+
it 'Расстановка пробелов в сокращениях г., ул., пер., д.' do
|
222
|
+
text = 'г.Тюмень, ул.Ленина, д. 4'
|
223
|
+
text_processed = 'г. Тюмень, ул. Ленина, д. 4'
|
224
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
225
|
+
end
|
226
|
+
|
227
|
+
it 'Расстановка пробелов перед сокращениями dpi, lpi' do
|
228
|
+
text = 'Разрешение 300dpi (для офсета).'
|
229
|
+
text_processed = 'Разрешение 300 dpi (для офсета).'
|
230
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
231
|
+
end
|
232
|
+
|
233
|
+
it 'Объединение сокращений P.S., P.P.S.' do
|
234
|
+
text = 'P.S. привет всем. P.P.S. и мне тоже.'
|
235
|
+
text_processed = '<nobr>P. S.</nobr> привет всем. <nobr>P. P. S.</nobr> и мне тоже.'
|
236
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
237
|
+
end
|
238
|
+
|
239
|
+
it 'Объединение в неразрывные конструкции слов с дефисом.' do
|
240
|
+
text = 'Жёлто-оранжевый цвет. Ростов-на-Дону красивый город.'
|
241
|
+
text_processed = '<nobr>Жёлто-оранжевый</nobr> цвет. <nobr>Ростов-на-Дону</nobr> красивый город.'
|
242
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
243
|
+
end
|
244
|
+
|
245
|
+
it 'Привязка сокращений форм собственности к названиям организаций' do
|
246
|
+
text = 'ООО "Фирма "Терминал", НИИ "ОблСнабВротКомпот"'
|
247
|
+
text_processed = '<nobr>ООО «Фирма «Терминал»</nobr>, <nobr>НИИ «ОблСнабВротКомпот»</nobr>'
|
248
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
249
|
+
end
|
250
|
+
|
251
|
+
it 'Объединение в неразрывные конструкции номеров телефонов' do
|
252
|
+
text = '+7 (3452) 55-66-77, 8 905 555-55-55'
|
253
|
+
text_processed = '<nobr>+7 (3452) 55-66-77</nobr>, <nobr>8 905 555-55-55</nobr>'
|
254
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
255
|
+
end
|
256
|
+
|
257
|
+
it 'Привязка сокращения ГОСТ к номеру' do
|
258
|
+
text = 'Гост 5773-90 - российские стандартные форматы изданий'
|
259
|
+
text_processed = '<nobr>ГОСТ 5773–90 —</nobr> российские стандартные форматы изданий'
|
260
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
261
|
+
end
|
262
|
+
|
263
|
+
it 'Установка пробельных символов в сокращении вольт' do
|
264
|
+
text = '~23,5в'
|
265
|
+
text_processed = '<nobr>~23,5 В</nobr>'
|
266
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
267
|
+
end
|
268
|
+
|
269
|
+
it 'Объединение триад чисел' do
|
270
|
+
text = '123 456 789 руб. В стычке участвовало 3 200 человек.'
|
271
|
+
text_processed = '123 456 789 руб. В стычке участвовало 3 200 человек.'
|
272
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
273
|
+
end
|
274
|
+
|
275
|
+
it 'Объединение IP-адресов' do
|
276
|
+
text = 'Адрес localhost - 127.0.0.1'
|
277
|
+
text_processed = 'Адрес localhost — <nobr>127.0.0.1</nobr>'
|
278
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
279
|
+
end
|
280
|
+
|
281
|
+
it 'Установка тире и пробельных символов в периодах дат' do
|
282
|
+
text = 'Это событие произошло между 1999-2001г.г., на стыке XX-XXIв.'
|
283
|
+
text_processed = 'Это событие произошло между <nobr>1999—2001 гг.</nobr>, на стыке <nobr>XX—XXI вв.</nobr>'
|
284
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
285
|
+
end
|
286
|
+
|
287
|
+
it 'Привязка года к дате' do
|
288
|
+
text = 'Документ был подписан 17.02.1983г. И утратил свою силу 07.03.93 года.'
|
289
|
+
text_processed = 'Документ был подписан <nobr>17.02.1983 г.</nobr> И утратил свою силу <nobr>07.03.93</nobr> года.'
|
290
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
291
|
+
end
|
292
|
+
|
293
|
+
it 'Расстановка тире и объединение в неразрывные периоды дней' do
|
294
|
+
text = 'Собеседования состоятся 14-24 сентября, в актовом зале с 11:30-13:00.'
|
295
|
+
text_processed = 'Собеседования состоятся <nobr>14—24 сентября</nobr>, в актовом зале с <nobr>11:30—13:00</nobr>.'
|
296
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
297
|
+
end
|
298
|
+
|
299
|
+
it 'Расстановка тире и объединение в неразрывные периоды месяцев' do
|
300
|
+
text = 'Выставка пройдёт в апреле-мае этого года.'
|
301
|
+
text_processed = 'Выставка пройдёт в апреле—мае этого года.'
|
302
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
303
|
+
end
|
304
|
+
|
305
|
+
it 'Привязка сокращений до н.э., н.э.' do
|
306
|
+
text = 'IV в до н.э, в V-VIвв до нэ., третий в. н.э.'
|
307
|
+
text_processed = 'IV <nobr>в. до н. э.</nobr>, в <nobr>V—VI вв. до н. э.</nobr>, третий <nobr>в. н. э.</nobr>'
|
308
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
309
|
+
end
|
310
|
+
|
311
|
+
it 'Привязка инициалов к фамилиям' do
|
312
|
+
text = 'А.С.Пушкин, Пушкин А.С.'
|
313
|
+
text_processed = '<nobr>А. С. Пушкин</nobr>, Пушкин А.С.'
|
314
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
315
|
+
end
|
316
|
+
|
317
|
+
# it 'Замена символа градус, плюс-минус' do
|
318
|
+
# text = ''
|
319
|
+
# text_processed = ''
|
320
|
+
# MultiTypograf.process(text, OPT).should eq text_processed
|
321
|
+
# end
|
322
|
+
|
323
|
+
it 'Замена символов и привязка сокращений в размерных величинах: м, см, м2…' do
|
324
|
+
text = 'На лесопилку завезли 32 м3 леса, из которых 4м3 пустили под распил на 25мм доски, длинной по 6м.'
|
325
|
+
text_processed = 'На лесопилку завезли 32 м³ леса, из которых 4 м³ пустили под распил на 25 мм доски, длинной по 6 м.'
|
326
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
327
|
+
end
|
328
|
+
|
329
|
+
# ...Когда В. И. Пупкин увидел в газете ( это была "Сермяжная правда" № 45) рубрику Weather Forecast(r), он не поверил своим глазам - температуру обещали +-451F.
|
330
|
+
# Пушкин, оценивая всех своих предшественников, писал: "... Некоторые оды Державина, несмотря на неправильность языка и неровность слога, исполнены порывами гения..."
|
331
|
+
|
332
|
+
it 'Повторное типографирование текста' do
|
333
|
+
text = '<p><nobr>Coca-Cola</nobr><sup><small>®</small></sup> — зарегистрированный товарный знак.</p>'
|
334
|
+
text_processed = '<p><nobr>Coca-Cola</nobr><sup><small>®</small></sup> — зарегистрированный товарный знак.</p>'
|
335
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
336
|
+
end
|
337
|
+
|
338
|
+
it 'Обработка HTML' do
|
339
|
+
text = '<!-- В тексте попался комментарий -->'
|
340
|
+
text_processed = text.dup
|
341
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
342
|
+
end
|
343
|
+
|
344
|
+
it 'Обработка CSS' do
|
345
|
+
text = %q{<style type="text/css">
|
346
|
+
SPAN.nobr { white-space: nowrap }
|
347
|
+
</style>}
|
348
|
+
text_processed = text.dup
|
349
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
350
|
+
end
|
351
|
+
|
352
|
+
it 'Обработка JavaScript' do
|
353
|
+
text = "<script type='text/javascript'>document.write('Этот текст не должен быть типографирован.')</script>"
|
354
|
+
text_processed = text.dup
|
355
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
356
|
+
end
|
357
|
+
|
358
|
+
it 'Обработка тегов <pre>' do
|
359
|
+
text = %q{<pre> Я не хотел бы
|
360
|
+
чтобы этот текст
|
361
|
+
был форматирован.</pre>}
|
362
|
+
text_processed = text.dup
|
363
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
364
|
+
end
|
365
|
+
|
366
|
+
it 'Выделение ссылок из текста' do
|
367
|
+
text = 'В тексте встретилась ссылка: http://www.typograf.ru'
|
368
|
+
text_processed = 'В тексте встретилась ссылка: <a href="http://www.typograf.ru">http://www.typograf.ru</a>'
|
369
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
370
|
+
end
|
371
|
+
|
372
|
+
it 'Выделение e-mail из текста' do
|
373
|
+
text = 'В тексте встретился e-mail: mail@typograf.ru'
|
374
|
+
text_processed = 'В тексте встретился <nobr>e-mail</nobr>: <a href="mailto:mail@typograf.ru">mail@typograf.ru</a>'
|
375
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
376
|
+
end
|
377
|
+
|
378
|
+
# it 'Обработка списков' do
|
379
|
+
# text = ''
|
380
|
+
# # * Программное обеспечение
|
381
|
+
# # ** Операционные системы
|
382
|
+
# # +++ Windows XP
|
383
|
+
# # +++ Linux RedHat
|
384
|
+
# # +++ MacOS X
|
385
|
+
# # ** Текстовые радакторы
|
386
|
+
# # * Компьютеры
|
387
|
+
# text_processed = ''
|
388
|
+
# MultiTypograf.process(text, OPT).should eq text_processed
|
389
|
+
# end
|
390
|
+
|
391
|
+
it 'Выделение акронимов' do
|
392
|
+
text = '<p>Все что вы хотели узнать о HTML.</p>'
|
393
|
+
text_processed = '<p>Все что вы хотели узнать о <acronym title="HyperText Markup Language" lang="en">HTML</acronym>.</p>'
|
394
|
+
MultiTypograf.process(text, OPT).should eq text_processed
|
395
|
+
end
|
396
|
+
end
|
397
|
+
end
|