standalone_typograf 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/standalone_typograf/quotes.rb +5 -0
- data/lib/standalone_typograf/version.rb +1 -1
- data/test/test_quotes.rb +10 -0
- metadata +4 -4
@@ -40,6 +40,7 @@ module StandaloneTypograf
|
|
40
40
|
#
|
41
41
|
def build_quotes_tree(arr_text)
|
42
42
|
quotes_tree = []
|
43
|
+
total = arr_text.size
|
43
44
|
arr_text.each_with_index do |char, index|
|
44
45
|
_next_, _prev_ = index + 1, index - 1
|
45
46
|
# Если кавычка - первый символ в строке или за кавычкой примыкает буква,
|
@@ -47,6 +48,10 @@ module StandaloneTypograf
|
|
47
48
|
if char == SOURCE[:double]
|
48
49
|
if index == 0 || (arr_text[_next_] != ' ' and arr_text[_prev_] == ' ')
|
49
50
|
quotes_tree << [index, :open]
|
51
|
+
# Ситуация с двойными кавычками идущими сразу за одинарными, например:
|
52
|
+
# "Привет, "Медвед"".
|
53
|
+
elsif arr_text[_prev_] == SOURCE[:double] and (arr_text[_next_] != ' ' and index + 1 != total)
|
54
|
+
quotes_tree << [index, :open]
|
50
55
|
else
|
51
56
|
quotes_tree << [index, :close]
|
52
57
|
end
|
data/test/test_quotes.rb
CHANGED
@@ -19,4 +19,14 @@ class QuotesTest < Test::Unit::TestCase
|
|
19
19
|
should = '**Один**;, **Два**;, **Три**;'
|
20
20
|
assert_equal text.quotes, should
|
21
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
|
22
32
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: standalone_typograf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -81,7 +81,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
81
81
|
version: '0'
|
82
82
|
segments:
|
83
83
|
- 0
|
84
|
-
hash: -
|
84
|
+
hash: -484725645805835366
|
85
85
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
86
|
none: false
|
87
87
|
requirements:
|
@@ -90,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
90
|
version: '0'
|
91
91
|
segments:
|
92
92
|
- 0
|
93
|
-
hash: -
|
93
|
+
hash: -484725645805835366
|
94
94
|
requirements: []
|
95
95
|
rubyforge_project:
|
96
96
|
rubygems_version: 1.8.25
|