Rewrite capitalize for readability

Makes capitalize logic more clear with @sam suggestion
This commit is contained in:
Rafael dos Santos Silva 2016-03-20 08:35:48 -04:00
parent decb744c76
commit adae5d78f5
2 changed files with 5 additions and 2 deletions

View file

@ -33,7 +33,10 @@ class TextCleaner
# Replace all-caps text with regular case letters
text = text.mb_chars.downcase.to_s if opts[:replace_all_upper_case] && (text =~ /[A-Z]+/) && (text == text.upcase)
# Capitalize first letter, but only when entire first word is lowercase
text = text.mb_chars.capitalize.to_s if opts[:capitalize_first_letter] && (text =~ /\S+/) && text.split(' ').first == text.split(' ').first.mb_chars.downcase
first, rest = text.split(' ', 2)
if opts[:capitalize_first_letter] && first == first.mb_chars.downcase
text = "#{first.mb_chars.capitalize}#{rest ? ' ' + rest : ''}"
end
# Remove unnecessary periods at the end
text.sub!(/([^.])\.+(\s*)\z/, '\1\2') if opts[:remove_all_periods_from_the_end]
# Remove extraneous space before the end punctuation

View file

@ -194,7 +194,7 @@ describe TextCleaner do
it "capitalizes first unicode letter" do
expect(TextCleaner.clean_title("épico encontro")).to eq("Épico encontro")
end
end
end