typography 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +10 -7
- data/lib/typography/core.rb +1 -1
- data/lib/typography/helper.rb +1 -1
- data/lib/typography/version.rb +1 -1
- data/lib/typography.rb +1 -1
- data/spec/spec_helper.rb +6 -0
- data/spec/typography_spec.rb +50 -64
- metadata +5 -5
data/README.rdoc
CHANGED
@@ -4,22 +4,25 @@ Simple plugin to make text more readable by applying some typographic rules to s
|
|
4
4
|
|
5
5
|
==Example
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
'"Читаешь -- "Прокопьев любил солянку" -- и долго не можешь понять, почему солянка написана с маленькой буквы, ведь "Солянка" -- известный московский клуб."'.typography
|
10
|
-
# => '«Читаешь — „Прокопьев любил солянку“ — и долго не можешь понять, почему солянка написана с маленькой буквы, ведь „Солянка“ — известный московский клуб.»'
|
11
|
-
|
12
|
-
It is better to use ty helper in your views:
|
7
|
+
You can use <tt>ty</tt> helper in your views:
|
13
8
|
|
14
9
|
ty 'This is a page title'
|
15
10
|
# => 'This is a page title'
|
16
11
|
|
12
|
+
And you can use <tt>ty_simple = simple_format ty </tt> helper :)
|
13
|
+
|
14
|
+
|
15
|
+
|
17
16
|
Plugin also replaces h and simple_format helpers to apply typography to their results.
|
18
17
|
|
19
18
|
|
20
19
|
==Installation
|
21
20
|
|
22
|
-
|
21
|
+
In your <tt>Gemfile</tt> add
|
22
|
+
|
23
|
+
gem 'typography'
|
23
24
|
|
25
|
+
and run <tt>bundle install</tt>.
|
24
26
|
|
25
27
|
Copyright (c) 2008 Igor Gladkoborodov, released under the MIT license
|
28
|
+
Modified by Antony Versal
|
data/lib/typography/core.rb
CHANGED
data/lib/typography/helper.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module ActionView::Helpers::TextHelper
|
2
2
|
def ty(text, options = {})
|
3
|
-
|
3
|
+
TypographyHelper::Core.new(text.html_safe, options).typography
|
4
4
|
end
|
5
5
|
def ty_simple(text, html_options={})
|
6
6
|
simple_format ty(text), html_options
|
data/lib/typography/version.rb
CHANGED
data/lib/typography.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/spec/typography_spec.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
describe TypographyHelper, 'with typography' do
|
4
|
-
include TypographyHelper
|
5
4
|
include ActionView::Helpers::TextHelper
|
6
5
|
include ActionView::Helpers::TagHelper
|
7
6
|
|
@@ -14,158 +13,145 @@ describe TypographyHelper, 'with typography' do
|
|
14
13
|
end
|
15
14
|
|
16
15
|
it "should typography output of simple_format helper" do
|
17
|
-
|
16
|
+
ty_simple("I'm first\n\nAnd I am second").should == "<p>I’m first</p>\n\n<p>And I am second</p>"
|
18
17
|
end
|
19
18
|
|
20
19
|
it "should return '<p></p>' (simple_format of empty string) on simple_format(nil)" do
|
21
20
|
simple_format(nil).should == "<p></p>"
|
22
21
|
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe String, 'with typography' do
|
26
22
|
|
27
23
|
it "should make russian quotes for quotes with first russian letter" do
|
28
|
-
'"текст"'.
|
29
|
-
'Text "текст" text'.
|
30
|
-
'Text "текст" text "Другой текст" '.
|
24
|
+
ty('"текст"').should == '«текст»'
|
25
|
+
ty('Text "текст" text').should == 'Text «текст» text'
|
26
|
+
ty('Text "текст" text "Другой текст" ').should == 'Text «текст» text «Другой текст» '
|
31
27
|
end
|
32
28
|
|
33
29
|
it "should do the same with single quotes" do
|
34
|
-
'\'текст\''.
|
35
|
-
'Text \'текст\' text'.
|
36
|
-
'Text \'текст\' text \'Другой текст\' '.
|
30
|
+
ty('\'текст\'').should == '«текст»'
|
31
|
+
ty('Text \'текст\' text').should == 'Text «текст» text'
|
32
|
+
ty('Text \'текст\' text \'Другой текст\' ').should == 'Text «текст» text «Другой текст» '
|
37
33
|
end
|
38
34
|
|
39
35
|
|
40
36
|
it "should create second-level russian quotes" do
|
41
|
-
|
37
|
+
ty('Текст "в кавычках "второго уровня""').should == 'Текст «в кавычках „второго уровня“»'
|
42
38
|
end
|
43
39
|
|
44
40
|
|
45
41
|
it "should make english quotes for quotes with first non-russian letter" do
|
46
|
-
'"text"'.
|
47
|
-
'Text "text" text'.
|
48
|
-
'Text "text" text "Another text" '.
|
42
|
+
ty('"text"').should == '“text”'
|
43
|
+
ty('Text "text" text').should == 'Text “text” text'
|
44
|
+
ty('Text "text" text "Another text" ').should == 'Text “text” text “Another text” '
|
49
45
|
end
|
50
46
|
|
51
47
|
it "should do the same with single quotes" do
|
52
|
-
'\'text\''.
|
53
|
-
'Text \'text\' text'.
|
54
|
-
'Text \'text\' text \'Another text\' '.
|
48
|
+
ty('\'text\'').should == '“text”'
|
49
|
+
ty('Text \'text\' text').should == 'Text “text” text'
|
50
|
+
ty('Text \'text\' text \'Another text\' ').should == 'Text “text” text “Another text” '
|
55
51
|
end
|
56
52
|
|
57
53
|
it "should create second-level english quotes" do
|
58
|
-
'Text "in quotes "second level""'.
|
54
|
+
ty('Text "in quotes "second level""').should == 'Text “in quotes ‘second level’”'
|
59
55
|
end
|
60
56
|
|
61
57
|
|
62
58
|
it "should not replace quotes inside html tags" do
|
63
|
-
'<a href="ссылка">ссылка</a>'.
|
64
|
-
'<a href=\'ссылка\'>"ссылка"</a>'.
|
59
|
+
ty('<a href="ссылка">ссылка</a>').should == '<a href="ссылка">ссылка</a>'
|
60
|
+
ty('<a href=\'ссылка\'>"ссылка"</a>').should == '<a href=\'ссылка\'>«ссылка»</a>'
|
65
61
|
|
66
|
-
'<a href=\'link\'>link</a>'.
|
67
|
-
'<a href="link">"link"</a>'.
|
62
|
+
ty('<a href=\'link\'>link</a>').should == '<a href=\'link\'>link</a>'
|
63
|
+
ty('<a href="link">"link"</a>').should == '<a href="link">“link”</a>'
|
68
64
|
|
69
|
-
' one">One</a> <a href="two"></a> <a href="three" '.
|
65
|
+
ty(' one">One</a> <a href="two"></a> <a href="three" ').should == ' one">One</a> <a href="two"></a> <a href="three" '
|
70
66
|
end
|
71
67
|
|
72
68
|
it "should make english and russian quotes in the same string" do
|
73
|
-
'"Кавычки" and "Quotes"'.
|
74
|
-
'"Quotes" и "Кавычки"'.
|
69
|
+
ty('"Кавычки" and "Quotes"').should == '«Кавычки» and “Quotes”'
|
70
|
+
ty('"Quotes" и "Кавычки"').should == '“Quotes” и «Кавычки»'
|
75
71
|
|
76
|
-
'"Кавычки "второго уровня"" and "Quotes "second level""'.
|
77
|
-
'"Quotes "second level"" и "Кавычки "второго уровня""'.
|
72
|
+
ty('"Кавычки "второго уровня"" and "Quotes "second level""').should == '«Кавычки „второго уровня“» and “Quotes ‘second level’”'
|
73
|
+
ty('"Quotes "second level"" и "Кавычки "второго уровня""').should == '“Quotes ‘second level’” и «Кавычки „второго уровня“»'
|
78
74
|
end
|
79
75
|
|
80
76
|
it "should replace -- to —" do
|
81
|
-
'Replace -- to mdash please'.
|
77
|
+
ty('Replace -- to mdash please').should == 'Replace — to mdash please'
|
82
78
|
end
|
83
79
|
|
84
80
|
it "should replace \"word - word\" to \"word — word\"" do
|
85
|
-
'word - word'.
|
81
|
+
ty('word - word').should == 'word — word'
|
86
82
|
end
|
87
83
|
|
88
84
|
it "should insert before each — if it has empty space before" do
|
89
|
-
'Before — after'.
|
90
|
-
'Before — after'.
|
91
|
-
'Before—after'.
|
85
|
+
ty('Before — after').should == 'Before — after'
|
86
|
+
ty('Before — after').should == 'Before — after'
|
87
|
+
ty('Before—after').should == 'Before—after'
|
92
88
|
end
|
93
89
|
|
94
90
|
|
95
91
|
it "should insert after small words" do
|
96
|
-
'an apple'.
|
92
|
+
ty('an apple').should == 'an apple'
|
97
93
|
end
|
98
94
|
|
99
95
|
it "should insert after small words" do
|
100
|
-
'I want to be a scientist'.
|
96
|
+
ty('I want to be a scientist').should == 'I want to be a scientist'
|
101
97
|
end
|
102
98
|
|
103
99
|
it "should insert after small words with ( or dash before it" do
|
104
|
-
'Apple (an orange)'.
|
100
|
+
ty('Apple (an orange)').should == 'Apple (an orange)'
|
105
101
|
end
|
106
102
|
|
107
103
|
it "should not insert after small words if it has not space after" do
|
108
|
-
'Хорошо бы.'.
|
109
|
-
'Хорошо бы'.
|
110
|
-
'Хорошо бы. Иногда'.
|
104
|
+
ty('Хорошо бы.').should == 'Хорошо бы.'
|
105
|
+
ty('Хорошо бы').should == 'Хорошо бы'
|
106
|
+
ty('Хорошо бы. Иногда').should == 'Хорошо бы. Иногда'
|
111
107
|
end
|
112
108
|
|
113
109
|
it "should insert <span class=\"nobr\"></span> around small words separated by dash" do
|
114
|
-
'Мне фигово что-то'.
|
115
|
-
'Как-то мне плохо'.
|
116
|
-
'хуе-мое'.
|
110
|
+
ty('Мне фигово что-то').should == 'Мне фигово <span class="nobr">что-то</span>'
|
111
|
+
ty('Как-то мне плохо').should == '<span class="nobr">Как-то</span> мне плохо'
|
112
|
+
ty('хуе-мое').should == '<span class="nobr">хуе-мое</span>'
|
117
113
|
end
|
118
114
|
|
119
115
|
it "should not insert <span class=\"nobr\"></span> around words separated by dash if both of them are bigger than 3 letters" do
|
120
|
-
'мальчик-девочка'.
|
121
|
-
end
|
122
|
-
|
123
|
-
|
124
|
-
it "should escape html if :escape_html => true is passed" do
|
125
|
-
'< & >'.typography(:escape_html => true).should == '< & >'
|
116
|
+
ty('мальчик-девочка').should == 'мальчик-девочка'
|
126
117
|
end
|
127
118
|
|
128
119
|
it "should replace single quote between letters to apostrophe" do
|
129
|
-
'I\'m here'.
|
120
|
+
ty('I\'m here').should == 'I’m here'
|
130
121
|
end
|
131
122
|
|
132
123
|
|
133
124
|
it "should typography real world examples" do
|
134
|
-
'"Читаешь -- "Прокопьев любил солянку" -- и долго не можешь понять, почему солянка написана с маленькой буквы, ведь "Солянка" -- известный московский клуб."'.
|
125
|
+
ty('"Читаешь -- "Прокопьев любил солянку" -- и долго не можешь понять, почему солянка написана с маленькой буквы, ведь "Солянка" -- известный московский клуб."').should == '«Читаешь — „Прокопьев любил солянку“ — и долго не можешь понять, почему солянка написана с маленькой буквы, ведь „Солянка“ — известный московский клуб.»'
|
135
126
|
end
|
136
127
|
|
137
128
|
it "should typography real world examples" do
|
138
|
-
'"Заебалоооооо" противостояние образует сет, в частности, "тюремные психозы", индуцируемые при различных психопатологических типологиях.'
|
129
|
+
ty('"Заебалоооооо" противостояние образует сет, в частности, "тюремные психозы", индуцируемые при различных психопатологических типологиях.', :escape_html => true).should == '«Заебалоооооо» противостояние образует сет, в частности, «тюремные психозы», индуцируемые при различных психопатологических типологиях.'
|
139
130
|
end
|
140
131
|
|
141
132
|
it "should typography real world examples" do
|
142
|
-
'"They are the most likely habitat that we\'re going to get to in the foreseeable future," said NASA Ames Research Center\'s Aaron Zent, the lead scientist for the probe being used to look for unfrozen water.'.
|
133
|
+
ty('"They are the most likely habitat that we\'re going to get to in the foreseeable future," said NASA Ames Research Center\'s Aaron Zent, the lead scientist for the probe being used to look for unfrozen water.').should == '“They are the most likely habitat that we’re going to get to in the foreseeable future,” said NASA Ames Research Center’s Aaron Zent, the lead scientist for the probe being used to look for unfrozen water.'
|
143
134
|
end
|
144
135
|
|
145
136
|
it "should typography real wordl examples" do
|
146
|
-
'Фирменный стиль: от полиграфии к интернет-решениям (в рамках выставки «Дизайн и Реклама 2009»)'.
|
137
|
+
ty('Фирменный стиль: от полиграфии к интернет-решениям (в рамках выставки «Дизайн и Реклама 2009»)').should == 'Фирменный стиль: от полиграфии к интернет-решениям (в рамках выставки «Дизайн и Реклама 2009»)'
|
147
138
|
end
|
148
139
|
|
149
140
|
it "should typography real world examples" do
|
150
|
-
'решениям (в рамках выставки'.
|
141
|
+
ty('решениям (в рамках выставки').should == 'решениям (в рамках выставки'
|
151
142
|
end
|
152
143
|
|
153
144
|
it "should typography real world examples" do
|
154
|
-
'Реанимация живописи: «новые дикие» и «трансавангард» в ситуации арт-рынка 1980-х'.
|
145
|
+
ty('Реанимация живописи: «новые дикие» и «трансавангард» в ситуации арт-рынка 1980-х').should == 'Реанимация живописи: «новые дикие» и «трансавангард» в ситуации арт-рынка <span class="nobr">1980-х</span>'
|
155
146
|
end
|
156
147
|
|
157
148
|
it "should typography real world examples" do
|
158
|
-
'«Искусство после философии» – концептуальные стратегии Джозефа Кошута и Харальда Зеемана'.
|
149
|
+
ty('«Искусство после философии» – концептуальные стратегии Джозефа Кошута и Харальда Зеемана').should == '«Искусство после философии» — концептуальные стратегии Джозефа Кошута и Харальда Зеемана'
|
159
150
|
end
|
160
151
|
|
161
152
|
it "should typography real world examples" do
|
162
|
-
'Испанцы говорят, что целовать мужчину без усов, - всё равно что есть яйцо без соли'.
|
153
|
+
ty('Испанцы говорят, что целовать мужчину без усов, - всё равно что есть яйцо без соли').should == 'Испанцы говорят, что целовать мужчину без усов, — всё равно что есть яйцо без соли'
|
163
154
|
end
|
164
155
|
|
165
|
-
|
166
|
-
|
167
|
-
# it "should fail" do
|
168
|
-
# 1.should == 2
|
169
|
-
# end
|
170
|
-
|
171
156
|
end
|
157
|
+
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: typography
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 2
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Dmitry Shaposhnik
|
@@ -65,8 +65,8 @@ extra_rdoc_files:
|
|
65
65
|
files:
|
66
66
|
- lib/typography.rb
|
67
67
|
- lib/typography/version.rb
|
68
|
-
- lib/typography/core.rb
|
69
68
|
- lib/typography/helper.rb
|
69
|
+
- lib/typography/core.rb
|
70
70
|
- spec/spec_helper.rb
|
71
71
|
- spec/debug.log
|
72
72
|
- spec/typography_spec.rb
|
@@ -109,7 +109,7 @@ rubyforge_project: ""
|
|
109
109
|
rubygems_version: 1.3.7
|
110
110
|
signing_key:
|
111
111
|
specification_version: 3
|
112
|
-
summary: typography-0.
|
112
|
+
summary: typography-0.2.0
|
113
113
|
test_files:
|
114
114
|
- spec/spec_helper.rb
|
115
115
|
- spec/debug.log
|