unicode_titlecase 0.0.1 → 0.0.2

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.
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
data/README.md CHANGED
@@ -1,13 +1,18 @@
1
1
  # unicode_titlecase gem
2
+ [![Gem Version](https://badge.fury.io/rb/unicode_titlecase.png)](http://badge.fury.io/rb/unicode_titlecase)
3
+ [![Code Climate](https://codeclimate.com/github/cantab/unicode_titlecase.png)](https://codeclimate.com/github/cantab/unicode_titlecase)
4
+ [![Build Status](https://travis-ci.org/cantab/unicode_titlecase.png?branch=master)](https://travis-ci.org/cantab/unicode_titlecase)
2
5
 
3
- A set of methods added onto the String class to allow easy title casing of strings with Unicode text.
6
+ Gem to enable easy title casing of strings containing Unicode text.
7
+
8
+ ## Introduction
9
+ This gem patches the String class to provide a unicode_titlecase method, which returns a string that is 'title cased': the first letter in each significant word is in capitals with the rest in lowercase.
4
10
 
5
11
  ## Features
12
+ * handles text containing Unicode characters
13
+ * handles words that should always be left capitalised (e.g., 'HIV')
14
+ * handles words that should always be left in lower case (e.g., 'to')
6
15
 
7
- * handles Unicode text
8
- * specify words that should always be left capitalised
9
- * specify words that should always be left in lower case
10
-
11
16
  ## Installation
12
17
 
13
18
  Add this line to your application's Gemfile:
@@ -20,21 +25,20 @@ And then execute:
20
25
 
21
26
  Or install it yourself as:
22
27
 
23
- $ gem install unicode_titlecase e'.
28
+ $ gem install unicode_titlecase
24
29
 
25
30
  ## Usage
26
31
 
27
- This gem patches the String class to provide a unicode_titlecase method, which returns a string that is 'title cased': the first letter in each significant word is in capitals with the rest in lowercase.
28
32
 
29
33
  To use, just call the unicode_titlecase method on any string you want to titlecase.
30
34
 
31
35
  For example,
32
36
 
33
37
  require 'unicode_titlecase'
34
-
38
+
35
39
  s = "the rain in spain stays mainly in the plain"
36
40
  puts s.unicode_titlecase
37
-
41
+
38
42
  gives
39
43
 
40
44
  "The Rain in Spain Stays Mainly in the Plain"
@@ -45,9 +49,15 @@ More examples are set out in the YAML files in the /spec/examples directory.
45
49
 
46
50
  With the help of the unicode-utils gem, we can properly handle title casing of Unicode text.
47
51
 
48
- For example, the string 'W Hiszpanii mży, gdy dżdżyste przyjdą dni' will be titlecased to 'W Hiszpanii Mży, Gdy Dżdżyste Przyjdą Dni'.
52
+ For example, the string
53
+
54
+ W Hiszpanii mży, gdy dżdżyste przyjdą dni
49
55
 
50
- Note: the source text may contain Unicode, or it may consist solely of ASCII. The unicode_titlecase method will work with either.
56
+ is titlecased to
57
+
58
+ W Hiszpanii Mży, Gdy Dżdżyste Przyjdą Dni
59
+
60
+ More examples [here](https://github.com/cantab/unicode_titlecase/blob/master/spec/examples/unicode_examples.yaml).
51
61
 
52
62
  ## 'Big Words'
53
63
 
@@ -55,13 +65,33 @@ In some circumstances, you may have source text that contains words that should
55
65
 
56
66
  The unicode_titlecase gem allows you to set up a list of 'big words' which it will keep upper-cased.
57
67
 
68
+ "DNA vs RNA - difference and comparison".unicode_titlecase
69
+
70
+ produces
71
+
72
+ "DNA vs RNA - Difference and Comparison"
73
+
74
+ More examples [here](https://github.com/cantab/unicode_titlecase/blob/master/spec/examples/bigword_examples.yaml).
75
+
58
76
  ## 'Small Words'
59
77
 
60
78
  Similarly, you source text may contain words that should always be in lower case.
61
79
 
62
- By convention, a number of short words such as 'is', 'of' and 'by' are considered to look better in text if they remain in lower case.
80
+ For example, in English, a number of short words such as 'is', 'of' and 'by' might be considered to look better in title cased text if they remain in lower case.
63
81
 
64
- For example, the phrase 'a government by the people for the people' might be title cased to 'A Government by the People for the People'.
82
+ So
83
+
84
+ 'a government by the people for the people'.unicode_titlecase
85
+
86
+ will give
87
+
88
+ 'A Government by the People for the People'
89
+
90
+ More examples [here](https://github.com/cantab/unicode_titlecase/blob/master/spec/examples/standard_examples.yaml).
91
+
92
+ ## Troubleshooting
93
+
94
+ - [irb does not display Unicode] (https://github.com/cantab/unicode_titlecase/wiki/Displaying-Unicode-Text-in-irb)
65
95
 
66
96
  ## Sources and Acknowledgements
67
97
 
@@ -80,10 +110,10 @@ Much of the source is based on Sam Souder's 'titlecase' gem at [samsouder/titlec
80
110
  - implemented rules in Ruby
81
111
  - [Github repo] (http://github.com/samsouder/titlecase)
82
112
  - [Rubygems.org] (http://rubygems.org/gems/titlecase)
83
-
113
+
84
114
  #### Others
85
115
  - Jim Nanney ([Github](https://github.com/jimnanney)) contributed to some of the code (go remote pairing!)
86
-
116
+
87
117
  ## Further Features?
88
118
  Here's a list of things we'd like to see in a future version of the unicode_titlecase gem. Please feel free to take any of these on (see [Contributing] (http://github.com/cantab/unicode_titlecase#contributing) below).
89
119
  - handle strings with 'mixed case words' such as GmbH
@@ -101,3 +131,26 @@ Feel free to drop us a line to let us know you would like to work on something o
101
131
  5. Create a new [Pull Request] (https://help.github.com/articles/using-pull-requests).
102
132
 
103
133
  More details on how to contribute can be found at this great Thoughtbot blogpost [8 (new) steps for fixing other people's code] (http://robots.thoughtbot.com/8-new-steps-for-fixing-other-peoples-code).
134
+
135
+ ## License
136
+
137
+ Copyright (c) 2013 Chong-Yee Khoo, released under the MIT License.
138
+
139
+ Permission is hereby granted, free of charge, to any person obtaining
140
+ a copy of this software and associated documentation files (the
141
+ "Software"), to deal in the Software without restriction, including
142
+ without limitation the rights to use, copy, modify, merge, publish,
143
+ distribute, sublicense, and/or sell copies of the Software, and to
144
+ permit persons to whom the Software is furnished to do so, subject to
145
+ the following conditions:
146
+
147
+ The above copyright notice and this permission notice shall be
148
+ included in all copies or substantial portions of the Software.
149
+
150
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
151
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
152
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
153
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
154
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
155
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
156
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -6,37 +6,33 @@ module UnicodeTitlecase
6
6
  module CoreExt
7
7
  module String
8
8
 
9
+ # List of exceptions: SMALL_WORDS are words that should always be in lowercase; BIG_WORDS are words that should always be in uppercase
10
+ SMALL_WORDS = %w(a an and as at but by be for if in is of on or the to v v. via vs vs.)
11
+ BIG_WORDS = %w(AB A.B. A/B AS A.S. A/S S.A. KG LLC LLP DNA RNA HBV HIV I II III IV V VI VII VIII IX X AC DC Q&A AT&T)
12
+
9
13
  def unicode_titlecase
10
- # List of exceptions: small_words are words that should always be in lowercase; big_words are words that should always be in uppercase
11
- small_words = %w(a an and as at but by be for if in is of on or the to v v. via vs vs.)
12
- big_words = %w(AB A.B. A/B AS A.S. A/S S.A. KG LLC LLP DNA RNA HBV HIV I II III IV V VI VII VIII IX X AC DC Q&A AT&T)
13
14
 
14
- x = split(" ").map do |word|
15
+ component_words = split(" ").map do |word|
15
16
  # note: word could contain non-word characters!
16
17
  # downcase all small_words, upcase all big words, smart capitalize the rest
17
18
 
18
- word.replace(UnicodeUtils.downcase(word)) if word.all_caps? and not big_words.include?(word)
19
+ word.unicode_downcase! if word.all_caps? and not word.is_big_word?
19
20
 
20
- if small_words.include?(UnicodeUtils.downcase(word.gsub(/\W/, "")))
21
- word.replace(UnicodeUtils.downcase(word))
21
+ if word.strip_non_word_chars.unicode_downcase.is_small_word?
22
+ word.unicode_downcase!
22
23
  else
23
- if big_words.include?(UnicodeUtils.upcase(word.gsub(/\W/, "")))
24
- word.replace(UnicodeUtils.upcase(word))
24
+ if word.strip_non_word_chars.unicode_upcase.is_big_word?
25
+ word.unicode_upcase!
25
26
  else
26
27
  word.smart_capitalize!
27
28
  end
28
29
  end
29
30
  end
30
31
 
31
- x = x - [' ']
32
-
33
- # capitalize first and last words
34
- x.first.to_s.smart_capitalize!
35
- # Uncomment the next line if you want the last word to be always initial caps
36
- x.last.to_s.smart_capitalize!
37
-
38
- # small words after colons are capitalized
39
- x.join(" ").gsub(/:\s?(\W*#{small_words.join("|")}\W*)\s/) { ": #{$1.smart_capitalize} " }
32
+ component_words = strip_spaces(component_words)
33
+ smart_capitalize_ends!(component_words)
34
+ result = component_words.join(" ")
35
+ capitalize_small_words_after_colons(result)
40
36
  end
41
37
 
42
38
  def unicode_titlecase!
@@ -46,10 +42,10 @@ module UnicodeTitlecase
46
42
  def smart_capitalize
47
43
  # ignore any leading crazy characters and capitalize the first real character
48
44
  if self =~ /^['"\(\[']*(\S)/
49
- i = index($1)
50
- x = self[i,self.length]
45
+ start_of_word = index($1)
46
+ word = self[start_of_word, self.length]
51
47
  # word with capitals and periods mid-word are left alone
52
- self[i,1] = UnicodeUtils.upcase(self[i,1]) unless self.has_caps? or x =~ /\.\w+/
48
+ self[start_of_word, 1] = UnicodeUtils.upcase(self[start_of_word, 1]) unless self.has_caps? or word =~ /\.\w+/
53
49
  end
54
50
  self
55
51
  end
@@ -59,13 +55,56 @@ module UnicodeTitlecase
59
55
  end
60
56
 
61
57
  def has_caps?
62
- return !UnicodeUtils.downcase(self) == self
58
+ return !(UnicodeUtils.downcase(self) == self)
63
59
  end
64
60
 
65
61
  def all_caps?
66
62
  return UnicodeUtils.upcase(self) == self
67
63
  end
68
64
 
65
+ def is_big_word?
66
+ BIG_WORDS.include?(self)
67
+ end
68
+
69
+ def is_small_word?
70
+ SMALL_WORDS.include?(self)
71
+ end
72
+
73
+ def unicode_downcase
74
+ UnicodeUtils.downcase(self)
75
+ end
76
+
77
+ def unicode_downcase!
78
+ replace(unicode_downcase)
79
+ end
80
+
81
+ def unicode_upcase
82
+ UnicodeUtils.upcase(self)
83
+ end
84
+
85
+ def unicode_upcase!
86
+ replace(unicode_upcase)
87
+ end
88
+
89
+ def smart_capitalize_ends!(ary)
90
+ # capitalize first and last words
91
+ ary.first.to_s.smart_capitalize!
92
+ # Uncomment the next line if you want the last word to be always initial caps
93
+ ary.last.to_s.smart_capitalize!
94
+ end
95
+
96
+ def capitalize_small_words_after_colons(str)
97
+ # small words after colons are capitalized
98
+ str.gsub(/:\s?(\W*#{SMALL_WORDS.join("|")}\W*)\s/) { ": #{$1.smart_capitalize} " }
99
+ end
100
+
101
+ def strip_spaces(ary)
102
+ ary - [' ']
103
+ end
104
+
105
+ def strip_non_word_chars
106
+ self.gsub(/\W/, "")
107
+ end
69
108
  end
70
109
  end
71
110
  end
@@ -1,3 +1,3 @@
1
1
  module UnicodeTitlecase
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -0,0 +1,234 @@
1
+ #encoding: UTF-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe String do
6
+
7
+ describe "has_caps? method" do
8
+
9
+ context "word with capital letter" do
10
+
11
+ it "identifies it as having caps" do
12
+ string = 'fluVial'
13
+ expect(string.has_caps?).to be_true
14
+ end
15
+ end
16
+
17
+ context "word without capital letter" do
18
+
19
+ it "identifies it has not having caps" do
20
+ string = 'fluvial'
21
+ expect(string.has_caps?).to be_false
22
+ end
23
+ end
24
+ end
25
+
26
+ describe "all_caps? method" do
27
+
28
+ context "word completely in uppercase" do
29
+
30
+ it "identifies it as having all caps" do
31
+ string = 'FLUVIAL'
32
+ expect(string.all_caps?).to be_true
33
+ end
34
+ end
35
+
36
+ context "word not completely in uppercase" do
37
+
38
+ it "identifies it has not having all caps" do
39
+ string = 'FLUvIAL'
40
+ expect(string.all_caps?).to be_false
41
+ end
42
+ end
43
+
44
+ context "word in lowercase" do
45
+
46
+ it "identifies it has not having all caps" do
47
+ string = 'fluvial'
48
+ expect(string.all_caps?).to be_false
49
+ end
50
+ end
51
+ end
52
+
53
+ describe "is_big_word? method" do
54
+
55
+ context "word in big words list" do
56
+
57
+ it "identifies it as being a big word" do
58
+ string = 'HIV'
59
+ expect(string.is_big_word?).to be_true
60
+ end
61
+ end
62
+
63
+ context "word not in big words list" do
64
+
65
+ it "identifies it as not being a big word" do
66
+ string = 'SIV'
67
+ expect(string.is_big_word?).to be_false
68
+ end
69
+ end
70
+ end
71
+
72
+ describe "is_small_word? method" do
73
+
74
+ context "word in small words list" do
75
+
76
+ it "identifies it as being a small word" do
77
+ string = 'is'
78
+ expect(string.is_small_word?).to be_true
79
+ end
80
+ end
81
+
82
+ context "word not in small words list" do
83
+
84
+ it "identifies it as not being a small word" do
85
+ string = 'tis'
86
+ expect(string.is_small_word?).to be_false
87
+ end
88
+ end
89
+ end
90
+
91
+ describe "unicode_downcase method" do
92
+
93
+ it "downcases the word" do
94
+ string = 'Dżdżyste'
95
+ expect(string.unicode_downcase).to eq('dżdżyste')
96
+ end
97
+ end
98
+
99
+ describe "unicode_downcase! method" do
100
+
101
+ it "downcases the word in place" do
102
+ string = 'Dżdżyste'
103
+ string.unicode_downcase!
104
+ expect(string).to eq('dżdżyste')
105
+ end
106
+ end
107
+
108
+ describe "unicode_upcase method" do
109
+
110
+ it "upcases the word" do
111
+ string = 'dżdżyste'
112
+ expect(string.unicode_upcase).to eq('DŻDŻYSTE')
113
+ end
114
+ end
115
+
116
+ describe "unicode_upcase! method" do
117
+
118
+ it "upcases the word in place" do
119
+ string = 'dżdżyste'
120
+ string.unicode_upcase!
121
+ expect(string).to eq('DŻDŻYSTE')
122
+ end
123
+ end
124
+
125
+ describe "smart_capitalize method" do
126
+
127
+ context "word with leading single quote mark" do
128
+
129
+ it "capitalizes word properly" do
130
+ expect("'fluvial".smart_capitalize).to eq("'Fluvial")
131
+ end
132
+
133
+ context "and internal capital letter" do
134
+ it "is left alone" do
135
+ expect("'flUvial".smart_capitalize).to eq("'flUvial")
136
+ end
137
+ end
138
+
139
+ context "and internal period" do
140
+ it "is left alone" do
141
+ expect("'fl.vial".smart_capitalize).to eq("'fl.vial")
142
+ end
143
+ end
144
+ end
145
+
146
+ context "word with leading double quote mark" do
147
+
148
+ it "capitalizes word properly" do
149
+ expect('"fluvial'.smart_capitalize).to eq('"Fluvial')
150
+ end
151
+
152
+ context "and internal capital letter" do
153
+ it "is left alone" do
154
+ expect('"flUvial'.smart_capitalize).to eq('"flUvial')
155
+ end
156
+ end
157
+
158
+ context "and internal period" do
159
+ it "is left alone" do
160
+ expect('"fl.vial'.smart_capitalize).to eq('"fl.vial')
161
+ end
162
+ end
163
+ end
164
+
165
+ context "word with leading open bracket" do
166
+ it "capitalizes word properly" do
167
+ expect('(fluvial'.smart_capitalize).to eq('(Fluvial')
168
+ end
169
+
170
+ context "and internal capital letter" do
171
+ it "is left alone" do
172
+ expect('(flUvial'.smart_capitalize).to eq('(flUvial')
173
+ end
174
+ end
175
+
176
+ context "and internal period" do
177
+ it "is left alone" do
178
+ expect('(fl.vial'.smart_capitalize).to eq('(fl.vial')
179
+ end
180
+ end
181
+ end
182
+
183
+ context "word with leading open square bracket" do
184
+ it "capitalizes word properly" do
185
+ expect('[fluvial'.smart_capitalize).to eq('[Fluvial')
186
+ end
187
+
188
+ context "and internal capital letter" do
189
+ it "is left alone" do
190
+ expect('[flUvial'.smart_capitalize).to eq('[flUvial')
191
+ end
192
+ end
193
+
194
+ context "and internal period" do
195
+ it "is left alone" do
196
+ expect('[fl.vial'.smart_capitalize).to eq('[fl.vial')
197
+ end
198
+ end
199
+ end
200
+
201
+ describe "smart_capitalize_ends! method" do
202
+
203
+ it "capitalizes first and last members of an array of words" do
204
+ array = ['fee', 'fi', 'fo', 'fum']
205
+ String.new.smart_capitalize_ends!(array)
206
+ expect(array).to eq(['Fee', 'fi', 'fo', 'Fum'])
207
+ end
208
+ end
209
+
210
+ describe "capitalize_small_words_after_colons method" do
211
+
212
+ it "capitalizes small words after colons" do
213
+ string = 'end: a begining'
214
+ expect(String.new.capitalize_small_words_after_colons(string)).to eq('end: A begining')
215
+ end
216
+ end
217
+
218
+ describe "strip_spaces method" do
219
+
220
+ it "strips members of array which are spaces" do
221
+ array = ['the', ' ', 'rain', ' ', 'in', ' ', 'spain', ' ']
222
+ expect(String.new.strip_spaces(array)).to eq(['the', 'rain', 'in', 'spain'])
223
+ end
224
+ end
225
+
226
+ describe "strip_non_word_chars method" do
227
+
228
+ it "strips characters in a string which are not words" do
229
+ string = "T!h\"e r£ai$n i%n Spa^in st&*a(y)s ma-in=!ly in t@+he p{}l[]ai#n"
230
+ expect(string.strip_non_word_chars).to eq("TheraininSpainstaysmainlyintheplain")
231
+ end
232
+ end
233
+ end
234
+ end
@@ -6,11 +6,13 @@ require 'unicode_titlecase/version'
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = "unicode_titlecase"
8
8
  gem.version = UnicodeTitlecase::VERSION
9
- gem.authors = ["Chong-Yee Khoo"]
9
+ gem.authors = ["Dr Chong-Yee Khoo"]
10
10
  gem.email = ["mail@cykhoo.com"]
11
- gem.description = %q{Titlecaser with Unicode smarts}
12
- gem.summary = %q{Change text, including in Unicode, to title case}
13
- gem.homepage = "http://github.com/cykhoo/unicode_titlecase"
11
+ gem.description = %q{Gem to enable easy title casing of strings containing Unicode text.}
12
+ gem.summary = %q{This gem patches the String class to provide a unicode_titlecase method, \
13
+ which returns a string that is 'title cased': the first letter in each \
14
+ significant word is in capitals with the rest in lowercase.}
15
+ gem.homepage = "http://github.com/cantab/unicode_titlecase"
14
16
 
15
17
  gem.files = `git ls-files`.split($/)
16
18
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unicode_titlecase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
- - Chong-Yee Khoo
8
+ - Dr Chong-Yee Khoo
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-01 00:00:00.000000000 Z
12
+ date: 2013-11-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -59,7 +59,7 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
- description: Titlecaser with Unicode smarts
62
+ description: Gem to enable easy title casing of strings containing Unicode text.
63
63
  email:
64
64
  - mail@cykhoo.com
65
65
  executables: []
@@ -69,6 +69,7 @@ files:
69
69
  - .gitignore
70
70
  - .rspec
71
71
  - .ruby-version
72
+ - .travis.yml
72
73
  - Gemfile
73
74
  - LICENSE.txt
74
75
  - README.md
@@ -82,9 +83,10 @@ files:
82
83
  - spec/examples/standard_examples.yaml
83
84
  - spec/examples/unicode_examples.yaml
84
85
  - spec/spec_helper.rb
86
+ - spec/string_misc_methods_spec.rb
85
87
  - spec/unicode_titlecase_spec.rb
86
88
  - unicode_titlecase.gemspec
87
- homepage: http://github.com/cykhoo/unicode_titlecase
89
+ homepage: http://github.com/cantab/unicode_titlecase
88
90
  licenses: []
89
91
  post_install_message:
90
92
  rdoc_options: []
@@ -98,7 +100,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
98
100
  version: '0'
99
101
  segments:
100
102
  - 0
101
- hash: -1860229550247952293
103
+ hash: -3799941477510380033
102
104
  required_rubygems_version: !ruby/object:Gem::Requirement
103
105
  none: false
104
106
  requirements:
@@ -107,13 +109,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
109
  version: '0'
108
110
  segments:
109
111
  - 0
110
- hash: -1860229550247952293
112
+ hash: -3799941477510380033
111
113
  requirements: []
112
114
  rubyforge_project:
113
115
  rubygems_version: 1.8.23
114
116
  signing_key:
115
117
  specification_version: 3
116
- summary: Change text, including in Unicode, to title case
118
+ summary: ! 'This gem patches the String class to provide a unicode_titlecase method,
119
+ \ which returns a string that is ''title cased'': the first letter in each \ significant
120
+ word is in capitals with the rest in lowercase.'
117
121
  test_files:
118
122
  - spec/examples/bigword_examples.yaml
119
123
  - spec/examples/capitalisation_examples.yaml
@@ -121,4 +125,5 @@ test_files:
121
125
  - spec/examples/standard_examples.yaml
122
126
  - spec/examples/unicode_examples.yaml
123
127
  - spec/spec_helper.rb
128
+ - spec/string_misc_methods_spec.rb
124
129
  - spec/unicode_titlecase_spec.rb