typogruby 1.0.3 → 1.0.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.
data/README.md CHANGED
@@ -47,6 +47,11 @@ This will output the contents of your file with all filters applied. Use `typogr
47
47
 
48
48
  ## Changelog
49
49
 
50
+ ### 1.0.4
51
+
52
+ * Bugfix: no longer regard combination of digits and periods as caps.
53
+ * Bugfix: do not add consecutive non-breaking spaces to prevent widows
54
+
50
55
  ### 1.0.3
51
56
 
52
57
  * Bugfix: caps also ignores unequal but same excepted tags
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.3
1
+ 1.0.4
data/lib/typogruby.rb CHANGED
@@ -105,11 +105,11 @@ module Typogruby
105
105
  text.gsub(%r{
106
106
  ((?:</?(?:a|em|span|strong|i|b)[^>]*>)|[^<>\s]) # must be proceeded by an approved inline opening or closing tag or a nontag/nonspace
107
107
  \s+ # the space to replace
108
- ([^<>\s]+ # must be flollowed by non-tag non-space characters
108
+ (([^<>\s]+) # must be flollowed by non-tag non-space characters
109
109
  \s* # optional white space!
110
110
  (</(a|em|span|strong|i|b)>\s*)* # optional closing inline tags with optional white space after each
111
111
  ((</(p|h[1-6]|li|dt|dd)>)|$)) # end with a closing p, h1-6, li or the end of the string
112
- }x, '\1&nbsp;\2')
112
+ }x) { |match| $1 + (match.include?('&nbsp;') ? ' ' : '&nbsp;') + $2 } # Make sure to not add another nbsp before one already there
113
113
  end
114
114
 
115
115
  # surrounds two or more consecutive captial letters, perhaps with interspersed digits and periods
@@ -137,7 +137,7 @@ module Typogruby
137
137
  excluded, before, caps = $1, $2, $3
138
138
  if excluded
139
139
  str
140
- elsif $3 =~ /^\d+$/
140
+ elsif $3 =~ /^[\d\.]+$/
141
141
  before + caps
142
142
  else
143
143
  before + '<span class="caps">' + caps + '</span>'
@@ -23,7 +23,7 @@ class TestTypogruby < Test::Unit::TestCase
23
23
  end
24
24
 
25
25
  def test_should_ignore_special_case_caps
26
- assert_equal 'It should ignore just numbers like 1234', caps('It should ignore just numbers like 1234')
26
+ assert_equal 'It should ignore just numbers like 1234.', caps('It should ignore just numbers like 1234.')
27
27
  assert_equal '<pre>CAPS</pre> more <span class="caps">CAPS</span>', caps("<pre>CAPS</pre> more CAPS")
28
28
  assert_equal '<Pre>CAPS</PRE> with odd tag names <span class="caps">CAPS</span>', caps("<Pre>CAPS</PRE> with odd tag names CAPS")
29
29
  assert_equal 'A message from <span class="caps">2KU2</span> with digits', caps("A message from 2KU2 with digits")
@@ -65,6 +65,10 @@ class TestTypogruby < Test::Unit::TestCase
65
65
  assert_equal '<h1><a href="#">In a link</a> followed by other&nbsp;text</h1>', widont('<h1><a href="#">In a link</a> followed by other text</h1>')
66
66
  end
67
67
 
68
+ def test_should_not_add_nbsp_before_another
69
+ assert_equal 'Sentence with one&nbsp;nbsp', widont('Sentence with one&nbsp;nbsp')
70
+ end
71
+
68
72
  def test_should_not_error_on_empty_html
69
73
  assert_equal '<h1><a href="#"></a></h1>', widont('<h1><a href="#"></a></h1>')
70
74
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: typogruby
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 3
10
- version: 1.0.3
9
+ - 4
10
+ version: 1.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Arjan van der Gaag
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-27 00:00:00 +02:00
18
+ date: 2010-07-28 00:00:00 +02:00
19
19
  default_executable: typogruby
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency