typogruby 1.0.12 → 1.0.13
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/Gemfile.lock +1 -1
- data/HISTORY.md +4 -0
- data/features/caps.feature +27 -0
- data/lib/typogruby.rb +13 -5
- data/lib/version.rb +1 -1
- data/typogruby.gemspec +1 -1
- metadata +39 -37
data/Gemfile.lock
CHANGED
data/HISTORY.md
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
Feature: processing caps
|
2
|
+
|
3
|
+
In order to be smart about caps
|
4
|
+
As a web developer using typogruby
|
5
|
+
I want to be fine-grained about what is and is not included within my caps tag
|
6
|
+
|
7
|
+
Scenario:
|
8
|
+
Given a file named "input.html" with:
|
9
|
+
"""
|
10
|
+
L. A. Paul is a name
|
11
|
+
L.A.P.D. is an acronym
|
12
|
+
LA is the normal case
|
13
|
+
LA. is a twist on the normal case that does no harm
|
14
|
+
LA..PD and LA...PD are fringe cases, but also do no harm
|
15
|
+
|
16
|
+
"""
|
17
|
+
When I run `typogruby -c input.html`
|
18
|
+
Then the output should contain exactly:
|
19
|
+
"""
|
20
|
+
L. A. Paul is a name
|
21
|
+
<span class="caps">L.A.P.D.</span> is an acronym
|
22
|
+
<span class="caps">LA</span> is the normal case
|
23
|
+
<span class="caps">LA.</span> is a twist on the normal case that does no harm
|
24
|
+
<span class="caps">LA..PD</span> and <span class="caps">LA.</span>..PD are fringe cases, but also do no harm
|
25
|
+
|
26
|
+
"""
|
27
|
+
And the exit status should be 0
|
data/lib/typogruby.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
1
3
|
require 'rubypants'
|
2
4
|
require 'digest/md5'
|
3
|
-
$KCODE = 'U'
|
5
|
+
$KCODE = 'U' if RUBY_VERSION < '1.9.0'
|
4
6
|
|
5
7
|
# A collection of simple helpers for improving web
|
6
8
|
# typograhy. Based on TypographyHelper by Luke Hartman and Typogrify.
|
@@ -141,16 +143,22 @@ module Typogruby
|
|
141
143
|
# caps("<i>D.O.T.</i>HE34T<b>RFID</b>")
|
142
144
|
# # => '<i><span class="caps">D.O.T.</span></i><span class="caps">HE34T</span><b><span class="caps">RFID</span></b>'
|
143
145
|
#
|
146
|
+
# @example Sequences of capitalised letters with spaces are not eligible, since they may be names.
|
147
|
+
# caps("L.A.P.D")
|
148
|
+
# # => '<span class="caps">L.A.P.D.</span>'
|
149
|
+
# caps("L. A. Paul")
|
150
|
+
# # => 'L. A. Paul'
|
151
|
+
#
|
144
152
|
# @param [String] text input text
|
145
153
|
# @return [String] input text with caps wrapped
|
146
154
|
def caps(text)
|
147
155
|
exclude_sensitive_tags(text) do |t|
|
148
156
|
# $1 and $2 are excluded HTML tags, $3 is the part before the caps and $4 is the caps match
|
149
157
|
t.gsub(%r{
|
150
|
-
(<[^/][^>]+?>)|
|
151
|
-
(\s| |^|'|"|>)
|
152
|
-
([A-Z\d][A-Z\d\.']{1,})
|
153
|
-
(?!\w)
|
158
|
+
(<[^/][^>]+?>)| # Ignore any opening tag, so we don't mess up attribute values
|
159
|
+
(\s| |^|'|"|>) # Make sure our capture is preceded by whitespace or quotes
|
160
|
+
([A-Z\d]([\.']?[A-Z\d][\.']?){1,}) # Capture capital words, with optional dots or numbers in between
|
161
|
+
(?!\w) # ...which must not be followed by a word character.
|
154
162
|
}x) do |str|
|
155
163
|
tag, before, caps = $1, $2, $3
|
156
164
|
|
data/lib/version.rb
CHANGED
data/typogruby.gemspec
CHANGED
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:
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 13
|
10
|
+
version: 1.0.13
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Arjan van der Gaag
|
@@ -15,10 +15,12 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-09-23 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
22
24
|
none: false
|
23
25
|
requirements:
|
24
26
|
- - ">="
|
@@ -27,12 +29,12 @@ dependencies:
|
|
27
29
|
segments:
|
28
30
|
- 0
|
29
31
|
version: "0"
|
30
|
-
|
32
|
+
version_requirements: *id001
|
31
33
|
name: rubypants
|
32
|
-
prerelease: false
|
33
|
-
type: :runtime
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
|
-
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
36
38
|
none: false
|
37
39
|
requirements:
|
38
40
|
- - ">="
|
@@ -41,12 +43,12 @@ dependencies:
|
|
41
43
|
segments:
|
42
44
|
- 0
|
43
45
|
version: "0"
|
44
|
-
|
46
|
+
version_requirements: *id002
|
45
47
|
name: yard
|
46
|
-
prerelease: false
|
47
|
-
type: :development
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
|
-
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
50
52
|
none: false
|
51
53
|
requirements:
|
52
54
|
- - ">="
|
@@ -55,12 +57,12 @@ dependencies:
|
|
55
57
|
segments:
|
56
58
|
- 0
|
57
59
|
version: "0"
|
58
|
-
|
60
|
+
version_requirements: *id003
|
59
61
|
name: rake
|
60
|
-
prerelease: false
|
61
|
-
type: :development
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
64
66
|
none: false
|
65
67
|
requirements:
|
66
68
|
- - ">="
|
@@ -69,12 +71,12 @@ dependencies:
|
|
69
71
|
segments:
|
70
72
|
- 0
|
71
73
|
version: "0"
|
72
|
-
|
74
|
+
version_requirements: *id004
|
73
75
|
name: aruba
|
74
|
-
prerelease: false
|
75
|
-
type: :development
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
|
-
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
78
80
|
none: false
|
79
81
|
requirements:
|
80
82
|
- - ">="
|
@@ -83,12 +85,12 @@ dependencies:
|
|
83
85
|
segments:
|
84
86
|
- 0
|
85
87
|
version: "0"
|
86
|
-
|
88
|
+
version_requirements: *id005
|
87
89
|
name: cucumber
|
88
|
-
prerelease: false
|
89
|
-
type: :development
|
90
90
|
- !ruby/object:Gem::Dependency
|
91
|
-
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
92
94
|
none: false
|
93
95
|
requirements:
|
94
96
|
- - ">="
|
@@ -97,12 +99,12 @@ dependencies:
|
|
97
99
|
segments:
|
98
100
|
- 0
|
99
101
|
version: "0"
|
100
|
-
|
102
|
+
version_requirements: *id006
|
101
103
|
name: rcov
|
102
|
-
prerelease: false
|
103
|
-
type: :development
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
|
-
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
106
108
|
none: false
|
107
109
|
requirements:
|
108
110
|
- - ">="
|
@@ -111,12 +113,12 @@ dependencies:
|
|
111
113
|
segments:
|
112
114
|
- 0
|
113
115
|
version: "0"
|
114
|
-
|
116
|
+
version_requirements: *id007
|
115
117
|
name: rspec
|
116
|
-
prerelease: false
|
117
|
-
type: :development
|
118
118
|
- !ruby/object:Gem::Dependency
|
119
|
-
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
120
122
|
none: false
|
121
123
|
requirements:
|
122
124
|
- - ">="
|
@@ -125,10 +127,8 @@ dependencies:
|
|
125
127
|
segments:
|
126
128
|
- 0
|
127
129
|
version: "0"
|
128
|
-
|
130
|
+
version_requirements: *id008
|
129
131
|
name: bluecloth
|
130
|
-
prerelease: false
|
131
|
-
type: :development
|
132
132
|
description: Improve web typography using various text filters. This gem prevents widows and applies markup to ampersans, consecutive capitals and initial quotes.
|
133
133
|
email: arjan@arjanvandergaag.nl
|
134
134
|
executables:
|
@@ -149,6 +149,7 @@ files:
|
|
149
149
|
- README.md
|
150
150
|
- Rakefile
|
151
151
|
- bin/typogruby
|
152
|
+
- features/caps.feature
|
152
153
|
- features/ignoring.feature
|
153
154
|
- features/inputs.feature
|
154
155
|
- features/selective_filtering.feature
|
@@ -188,11 +189,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
189
|
requirements: []
|
189
190
|
|
190
191
|
rubyforge_project:
|
191
|
-
rubygems_version: 1.8.
|
192
|
+
rubygems_version: 1.8.10
|
192
193
|
signing_key:
|
193
194
|
specification_version: 3
|
194
195
|
summary: Improves web typography like Django's Typogrify
|
195
196
|
test_files:
|
197
|
+
- features/caps.feature
|
196
198
|
- features/ignoring.feature
|
197
199
|
- features/inputs.feature
|
198
200
|
- features/selective_filtering.feature
|