standalone_typograf 2.0.2 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rspec +2 -0
- data/.travis.yml +8 -0
- data/README.md +108 -72
- data/Rakefile +1 -9
- data/doc/fonts.md +1 -4
- data/doc/logo.png +0 -0
- data/doc/logo.psd +0 -0
- data/lib/standalone_typograf/dashes.rb +23 -0
- data/lib/standalone_typograf/ellipsis.rb +23 -0
- data/lib/standalone_typograf/fractions.rb +12 -28
- data/lib/standalone_typograf/mnemonics.rb +33 -0
- data/lib/standalone_typograf/nbspaces.rb +36 -0
- data/lib/standalone_typograf/quotes.rb +109 -77
- data/lib/standalone_typograf/version.rb +1 -1
- data/lib/standalone_typograf.rb +86 -42
- data/spec/processors/dashes_spec.rb +31 -0
- data/spec/processors/ellipsis_spec.rb +28 -0
- data/spec/processors/fractions_spec.rb +18 -0
- data/spec/processors/mnemonics_spec.rb +34 -0
- data/spec/processors/nbspaces_spec.rb +31 -0
- data/spec/processors/quotes_spec.rb +32 -0
- data/spec/spec_helper.rb +21 -0
- data/spec/standalone_typograf_spec.rb +12 -0
- data/spec/typograf_spec.rb +57 -0
- data/standalone_typograf.gemspec +6 -3
- metadata +76 -45
- data/.DS_Store +0 -0
- data/.rvmrc +0 -1
- data/lib/standalone_typograf/dasherize.rb +0 -12
- data/lib/standalone_typograf/dots.rb +0 -9
- data/lib/standalone_typograf/endash.rb +0 -9
- data/lib/standalone_typograf/nbspace.rb +0 -42
- data/lib/standalone_typograf/signs.rb +0 -26
- data/test/test_dash.rb +0 -24
- data/test/test_dots.rb +0 -24
- data/test/test_endash.rb +0 -12
- data/test/test_fractions.rb +0 -25
- data/test/test_nbspace.rb +0 -33
- data/test/test_prepare.rb +0 -34
- data/test/test_quotes.rb +0 -32
- data/test/test_signs.rb +0 -36
@@ -1,42 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module StandaloneTypograf
|
4
|
-
module Nbspace
|
5
|
-
PARTICLES = [
|
6
|
-
'разве',
|
7
|
-
'неужели',
|
8
|
-
'едва',
|
9
|
-
'вряд',
|
10
|
-
'вроде',
|
11
|
-
'якобы',
|
12
|
-
'мол',
|
13
|
-
'дескать',
|
14
|
-
'даже',
|
15
|
-
'ведь',
|
16
|
-
'таки',
|
17
|
-
'лишь',
|
18
|
-
'почти',
|
19
|
-
'только',
|
20
|
-
'исключительно',
|
21
|
-
'вон',
|
22
|
-
'вот',
|
23
|
-
'именно',
|
24
|
-
'точь-в-точь',
|
25
|
-
'приблизительно',
|
26
|
-
'прямо',
|
27
|
-
]
|
28
|
-
# Неразрывный пробел
|
29
|
-
def nbspace
|
30
|
-
# Одна буква - неразрывный пробел справа
|
31
|
-
@text = @text.gsub(/(\s| )([a-zа-яА-Я])(\s| )/i, '\1'+'\2'+' ')
|
32
|
-
|
33
|
-
# Двухбуквенные слова - наразрывные пробел справа
|
34
|
-
@text = @text.gsub(/(\s| )([a-zа-яА-Я][a-zа-яА-Я])(\s| )/i, '\1'+'\2'+' ')
|
35
|
-
|
36
|
-
# У частиц неразрывный пробел слева
|
37
|
-
PARTICLES.each { |p| @text = @text.gsub(/(\s| )(#{p})/i, ' '+'\2') }
|
38
|
-
|
39
|
-
@text
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module StandaloneTypograf
|
4
|
-
module Signs
|
5
|
-
|
6
|
-
SIGNS = {
|
7
|
-
'[(]c[)]' => '©',
|
8
|
-
'[(]tm[)]' => '™',
|
9
|
-
'[(]r[)]' => '®',
|
10
|
-
'[+][-]' => '±',
|
11
|
-
}
|
12
|
-
SIGNS_RU = {
|
13
|
-
'[(]с[)]' => '©',
|
14
|
-
'[(]тм[)]' => '™',
|
15
|
-
'[(]р[)]' => '®',
|
16
|
-
}
|
17
|
-
|
18
|
-
def signs
|
19
|
-
source = @signs.merge(@signs_ru).merge(SIGNS).merge(SIGNS_RU)
|
20
|
-
source.each_pair do |text, sign|
|
21
|
-
@text = @text.gsub(/#{text}/i, sign)
|
22
|
-
end
|
23
|
-
@text
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
data/test/test_dash.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
#encoding: UTF-8
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'standalone_typograf'
|
5
|
-
|
6
|
-
class DashTest < Test::Unit::TestCase
|
7
|
-
def test_dasherize_left
|
8
|
-
text = StandaloneTypograf::Typograf.new('Привет,- это длинное тире!')
|
9
|
-
should = 'Привет,— это длинное тире!'
|
10
|
-
assert_equal text.dasherize, should
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_dasherize_hyphen
|
14
|
-
text = StandaloneTypograf::Typograf.new('Яблоко - это фрукт. То-то и оно.')
|
15
|
-
should = 'Яблоко — это фрукт. То-то и оно.'
|
16
|
-
assert_equal text.dasherize, should
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_no_dashes
|
20
|
-
text = StandaloneTypograf::Typograf.new('Яблоко есть фрукт.')
|
21
|
-
should = 'Яблоко есть фрукт.'
|
22
|
-
assert_equal text.dasherize, should
|
23
|
-
end
|
24
|
-
end
|
data/test/test_dots.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
#encoding: UTF-8
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'standalone_typograf'
|
5
|
-
|
6
|
-
class DotsTest < Test::Unit::TestCase
|
7
|
-
def test_dots
|
8
|
-
text = StandaloneTypograf::Typograf.new('Дубровский молчал...')
|
9
|
-
should = 'Дубровский молчал…'
|
10
|
-
assert_equal text.dots, should
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_two_dots
|
14
|
-
text = StandaloneTypograf::Typograf.new('Да что тут предлагать?..')
|
15
|
-
should = 'Да что тут предлагать?..'
|
16
|
-
assert_equal text.dots, should
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_range
|
20
|
-
text = StandaloneTypograf::Typograf.new('Труба длиной 5...10 м.')
|
21
|
-
should = 'Труба длиной 5…10 м.'
|
22
|
-
assert_equal text.dots, should
|
23
|
-
end
|
24
|
-
end
|
data/test/test_endash.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
#encoding: UTF-8
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'standalone_typograf'
|
5
|
-
|
6
|
-
class EndashTest < Test::Unit::TestCase
|
7
|
-
def test_endash
|
8
|
-
text = StandaloneTypograf::Typograf.new('- В 2006-2012 годах я учился в каком-то университете.')
|
9
|
-
should = '- В 2006–2012 годах я учился в каком-то университете.'
|
10
|
-
assert_equal text.endash, should
|
11
|
-
end
|
12
|
-
end
|
data/test/test_fractions.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
#encoding: UTF-8
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'standalone_typograf'
|
5
|
-
|
6
|
-
class FractionsTest < Test::Unit::TestCase
|
7
|
-
# Дроби
|
8
|
-
def test_fractions
|
9
|
-
text = StandaloneTypograf::Typograf.new('В 1/3 всей воды на планете содержится 2/10 углекислого газа. 102/303')
|
10
|
-
should = 'В ⅓ всей воды на планете содержится 2/10 углекислого газа. 102/303'
|
11
|
-
assert_equal text.fractions, should
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_whitespaces
|
15
|
-
text = StandaloneTypograf::Typograf.new('1/2 1/4')
|
16
|
-
should = '½ ¼'
|
17
|
-
assert_equal text.fractions, should
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_single
|
21
|
-
text = StandaloneTypograf::Typograf.new('1/2')
|
22
|
-
should = '½'
|
23
|
-
assert_equal text.fractions, should
|
24
|
-
end
|
25
|
-
end
|
data/test/test_nbspace.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
#encoding: UTF-8
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'standalone_typograf'
|
5
|
-
|
6
|
-
class NbspaceTest < Test::Unit::TestCase
|
7
|
-
def test_prepare_1word
|
8
|
-
# Неразрывный пробел справа от 'я' и 'в'
|
9
|
-
text = StandaloneTypograf::Typograf.new('Давно я ходил в лес')
|
10
|
-
should = 'Давно я ходил в лес'
|
11
|
-
assert_equal text.nbspace, should
|
12
|
-
end
|
13
|
-
def test_prepare_2words
|
14
|
-
# Неразрывный пробел справа от 'за'
|
15
|
-
text = StandaloneTypograf::Typograf.new('Сходи за пивом')
|
16
|
-
should = 'Сходи за пивом'
|
17
|
-
assert_equal text.nbspace, should
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_particles
|
21
|
-
# У частиц неразрывный пробел слева
|
22
|
-
text = StandaloneTypograf::Typograf.new('Саша якобы принес водку')
|
23
|
-
should = 'Саша якобы принес водку'
|
24
|
-
assert_equal text.nbspace, should
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_combine
|
28
|
-
# впваып ваыпаыв пывап я за пивом пошел 2/3
|
29
|
-
text = StandaloneTypograf::Typograf.new('впваып ваыпаыв пывап я за пивом пошел 2/3')
|
30
|
-
should = 'впваып ваыпаыв пывап я за пивом пошел 2/3'
|
31
|
-
assert_equal text.nbspace, should
|
32
|
-
end
|
33
|
-
end
|
data/test/test_prepare.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
#encoding: UTF-8
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'standalone_typograf'
|
5
|
-
|
6
|
-
class PrepareTest < Test::Unit::TestCase
|
7
|
-
def test_prepare
|
8
|
-
source = <<-PLAIN
|
9
|
-
(р) 2013 кто-то, кого нельзя называть. "Артемий лебедев(тм), - "Взял мяч - хуяч"(с)"
|
10
|
-
PLAIN
|
11
|
-
text = StandaloneTypograf::Typograf.new(source)
|
12
|
-
should = <<-PLAIN
|
13
|
-
® 2013 кто-то, кого нельзя называть. «Артемий лебедев™, — „Взял мяч — хуяч“©»
|
14
|
-
PLAIN
|
15
|
-
assert_equal text.prepare, should
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_prepare_redefinition
|
19
|
-
source = <<-PLAIN
|
20
|
-
(р) 2013 кто-то, кого нельзя называть. "Артемий лебедев(тм), - "Взял мяч - хуяч"(с)"
|
21
|
-
PLAIN
|
22
|
-
text = StandaloneTypograf::Typograf.new(source, quotes: {outer: ['«', '»']})
|
23
|
-
should = <<-PLAIN
|
24
|
-
® 2013 кто-то, кого нельзя называть. «Артемий лебедев™, — „Взял мяч — хуяч“©»
|
25
|
-
PLAIN
|
26
|
-
assert_equal text.prepare, should
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_except
|
30
|
-
text = StandaloneTypograf::Typograf.new('1/2+1/3', except: [:fractions])
|
31
|
-
should = '1/2+1/3'
|
32
|
-
assert_equal text.prepare, should
|
33
|
-
end
|
34
|
-
end
|
data/test/test_quotes.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
#encoding: UTF-8
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'standalone_typograf'
|
5
|
-
|
6
|
-
class QuotesTest < Test::Unit::TestCase
|
7
|
-
def test_quotes_o_i
|
8
|
-
text = StandaloneTypograf::Typograf.new('"Два "вида" "кавычек"" "Жесть"')
|
9
|
-
should = '«Два „вида“ „кавычек“» «Жесть»'
|
10
|
-
assert_equal text.quotes, should
|
11
|
-
end
|
12
|
-
def test_quotes_o
|
13
|
-
text = StandaloneTypograf::Typograf.new('"Один", "Два", "Три"')
|
14
|
-
should = '«Один», «Два», «Три»'
|
15
|
-
assert_equal text.quotes, should
|
16
|
-
end
|
17
|
-
def test_quotes_redefinition
|
18
|
-
text = StandaloneTypograf::Typograf.new('"Один", "Два", "Три"', quotes: {outer: ['**', '**;']})
|
19
|
-
should = '**Один**;, **Два**;, **Три**;'
|
20
|
-
assert_equal text.quotes, should
|
21
|
-
end
|
22
|
-
def test_double_quotes_nearby
|
23
|
-
text = StandaloneTypograf::Typograf.new('""Гномы", - вскрикнул Бильбо", - сказал Толкиен')
|
24
|
-
should = '«„Гномы“, - вскрикнул Бильбо», - сказал Толкиен'
|
25
|
-
assert_equal text.quotes, should
|
26
|
-
end
|
27
|
-
def test_double_quotes_nearby_last
|
28
|
-
text = StandaloneTypograf::Typograf.new('"Привет тебе, "Путник""')
|
29
|
-
should = '«Привет тебе, „Путник“»'
|
30
|
-
assert_equal text.quotes, should
|
31
|
-
end
|
32
|
-
end
|
data/test/test_signs.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
#encoding: UTF-8
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'standalone_typograf'
|
5
|
-
|
6
|
-
class SignsTest < Test::Unit::TestCase
|
7
|
-
def test_signs
|
8
|
-
text = StandaloneTypograf::Typograf.new('(р)(Р)(r)(R)(тм)(ТМ)(с)(С)(C)(c)')
|
9
|
-
should = '®®®®™™©©©©'
|
10
|
-
assert_equal text.signs, should
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_no_signs
|
14
|
-
text = StandaloneTypograf::Typograf.new('Это чистый текст (yes)')
|
15
|
-
should = 'Это чистый текст (yes)'
|
16
|
-
assert_equal text.signs, should
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_signs_option
|
20
|
-
text = StandaloneTypograf::Typograf.new('(copy) 2013', signs: {'[(]copy[)]' => '©'})
|
21
|
-
should = '© 2013'
|
22
|
-
assert_equal text.signs, should
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_signs_ru_option
|
26
|
-
text = StandaloneTypograf::Typograf.new('(копи) 2013', signs_ru: {'[(]копи[)]' => '©'})
|
27
|
-
should = '© 2013'
|
28
|
-
assert_equal text.signs, should
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_plus_minus
|
32
|
-
text = StandaloneTypograf::Typograf.new('В шахматной нотации символ +- означает, что после соответствующего хода преимущество имеют белые. Малахов +1.')
|
33
|
-
should = 'В шахматной нотации символ ± означает, что после соответствующего хода преимущество имеют белые. Малахов +1.'
|
34
|
-
assert_equal text.signs, should
|
35
|
-
end
|
36
|
-
end
|