pascoale 0.1.0 → 0.2.0
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.
- checksums.yaml +4 -4
- data/Guardfile +1 -1
- data/lib/pascoale.rb +1 -0
- data/lib/pascoale/formatter.rb +54 -0
- data/lib/pascoale/version.rb +1 -1
- data/pascoale.gemspec +3 -3
- data/spec/lib/pascoale/formatter_spec.rb +46 -0
- metadata +14 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c8ce764aef7a0c803c94a6a5ef4d0387b392250b
|
4
|
+
data.tar.gz: 2f8e9bb20376854c7375ff4217d32063b45b74d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc8f197ff4c99da3cfd5aba70ed1bc32d87e88cc33da29ab2966af72bf3964ea7a5d9ea099a158da6a29e509ce7215d9a0a140403a9bff91ecbae658d372ca64
|
7
|
+
data.tar.gz: 379a5a131cccf7ab26faaf6e7948e996732290cb46c30e451979b0e9a4c8d7afd1480b4f9bbd8483fcb2d5e72419a1cb2f4c0d7fe48e6d10a39fa64f91c71b98
|
data/Guardfile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
guard :rspec do
|
1
|
+
guard :rspec, all_on_start: true, keep: true, all_after_pass: true, cmd: 'bundle exec rspec', run_all: { cmd: 'bundle exec rspec -f progress' } do
|
2
2
|
watch(%r{^spec/.+_spec\.rb$})
|
3
3
|
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
4
4
|
watch('spec/spec_helper.rb') { "spec" }
|
data/lib/pascoale.rb
CHANGED
@@ -0,0 +1,54 @@
|
|
1
|
+
module Pascoale
|
2
|
+
class Formatter
|
3
|
+
EXCEPTIONS = %(a o e da do de na no em as os das dos nas nos à com sem)
|
4
|
+
|
5
|
+
def initialize(text)
|
6
|
+
@text = text
|
7
|
+
end
|
8
|
+
|
9
|
+
def as_title
|
10
|
+
def title_word(a_word)
|
11
|
+
if EXCEPTIONS.include?(a_word.downcase)
|
12
|
+
a_word.downcase
|
13
|
+
else
|
14
|
+
a_word.capitalize
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
words = @text.split(/\s+/).map { |word| Formatter.new(word) }
|
19
|
+
first = words.first
|
20
|
+
first = first.upcase? ? first : first.capitalize
|
21
|
+
rest = words[1..-1].map { |word| word.upcase? ? word : title_word(word) }
|
22
|
+
([first] + rest).join(' ')
|
23
|
+
end
|
24
|
+
|
25
|
+
def upcase?
|
26
|
+
self.upcase == @text
|
27
|
+
end
|
28
|
+
|
29
|
+
def downcase?
|
30
|
+
self.downcase == @text
|
31
|
+
end
|
32
|
+
|
33
|
+
def capitalize?
|
34
|
+
self.capitalize == @text
|
35
|
+
end
|
36
|
+
|
37
|
+
def upcase
|
38
|
+
@text.upcase.tr('áéíóúâêôãõçü', 'ÁÉÍÓÚÂÊÔÃÕÇÜ')
|
39
|
+
end
|
40
|
+
|
41
|
+
def downcase
|
42
|
+
@text.downcase.tr('ÁÉÍÓÚÂÊÔÃÕÇÜ', 'áéíóúâêôãõçü')
|
43
|
+
end
|
44
|
+
|
45
|
+
def capitalize
|
46
|
+
Formatter.new(@text[0..0]).upcase +
|
47
|
+
Formatter.new(@text[1..-1]).downcase
|
48
|
+
end
|
49
|
+
|
50
|
+
def to_s
|
51
|
+
@text
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
data/lib/pascoale/version.rb
CHANGED
data/pascoale.gemspec
CHANGED
@@ -17,8 +17,8 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
|
20
|
-
spec.add_development_dependency 'bundler'
|
20
|
+
spec.add_development_dependency 'bundler'
|
21
21
|
spec.add_development_dependency 'rake'
|
22
|
-
spec.add_development_dependency 'rspec', '~> 3
|
23
|
-
spec.add_development_dependency 'guard-rspec'
|
22
|
+
spec.add_development_dependency 'rspec', '~> 3'
|
23
|
+
spec.add_development_dependency 'guard-rspec', '~> 4'
|
24
24
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Pascoale::Formatter do
|
4
|
+
describe '#as_title' do
|
5
|
+
it 'formats simple text' do
|
6
|
+
formatter = Pascoale::Formatter.new('teste')
|
7
|
+
expect(formatter.as_title).to eq 'Teste'
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'formats simple text with accent' do
|
11
|
+
formatter = Pascoale::Formatter.new('épico')
|
12
|
+
expect(formatter.as_title).to eq 'Épico'
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'formats multiple words' do
|
16
|
+
formatter = Pascoale::Formatter.new('joão alves ferreira')
|
17
|
+
expect(formatter.as_title).to eq 'João Alves Ferreira'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'formats prepositions and connect words as exceptions' do
|
21
|
+
formatter = Pascoale::Formatter.new('josé da silva e santos dos anjos')
|
22
|
+
expect(formatter.as_title).to eq 'José da Silva e Santos dos Anjos'
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'formats first words always as capitalized' do
|
26
|
+
formatter = Pascoale::Formatter.new('da vida e das coisas')
|
27
|
+
expect(formatter.as_title).to eq 'Da Vida e das Coisas'
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'formats acronyms' do
|
31
|
+
formatter = Pascoale::Formatter.new('a ONU não gosta de violência')
|
32
|
+
expect(formatter.as_title).to eq 'A ONU Não Gosta de Violência'
|
33
|
+
|
34
|
+
formatter = Pascoale::Formatter.new('IRQ é algo ultrapassado!')
|
35
|
+
expect(formatter.as_title).to eq 'IRQ É Algo Ultrapassado!'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe '#upcase'
|
40
|
+
describe '#downcase'
|
41
|
+
describe '#capitalize'
|
42
|
+
describe '#upcase?'
|
43
|
+
describe '#dowcase?'
|
44
|
+
describe '#capitalize?'
|
45
|
+
describe '#to_s'
|
46
|
+
end
|
metadata
CHANGED
@@ -1,35 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pascoale
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ronie Uliana
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.5'
|
20
17
|
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
19
|
+
version: '0'
|
23
20
|
type: :development
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '1.5'
|
30
24
|
- - ">="
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
26
|
+
version: '0'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: rake
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -50,28 +44,28 @@ dependencies:
|
|
50
44
|
requirements:
|
51
45
|
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: 3
|
47
|
+
version: '3'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
51
|
requirements:
|
58
52
|
- - "~>"
|
59
53
|
- !ruby/object:Gem::Version
|
60
|
-
version: 3
|
54
|
+
version: '3'
|
61
55
|
- !ruby/object:Gem::Dependency
|
62
56
|
name: guard-rspec
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
64
58
|
requirements:
|
65
|
-
- - "
|
59
|
+
- - "~>"
|
66
60
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
61
|
+
version: '4'
|
68
62
|
type: :development
|
69
63
|
prerelease: false
|
70
64
|
version_requirements: !ruby/object:Gem::Requirement
|
71
65
|
requirements:
|
72
|
-
- - "
|
66
|
+
- - "~>"
|
73
67
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
68
|
+
version: '4'
|
75
69
|
description:
|
76
70
|
email:
|
77
71
|
- ronie.uliana@vagas.com.br
|
@@ -93,11 +87,13 @@ files:
|
|
93
87
|
- lib/pascoale.rb
|
94
88
|
- lib/pascoale/constants.rb
|
95
89
|
- lib/pascoale/edits.rb
|
90
|
+
- lib/pascoale/formatter.rb
|
96
91
|
- lib/pascoale/syllable_separator.rb
|
97
92
|
- lib/pascoale/syllable_separator_benchmark.rb
|
98
93
|
- lib/pascoale/version.rb
|
99
94
|
- pascoale.gemspec
|
100
95
|
- spec/lib/pascoale/edits_spec.rb
|
96
|
+
- spec/lib/pascoale/formatter_spec.rb
|
101
97
|
- spec/lib/pascoale/syllable_separator_spec.rb
|
102
98
|
- spec/spec_helper.rb
|
103
99
|
homepage: http://github.com/ruliana/pascoale
|
@@ -120,11 +116,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
116
|
version: '0'
|
121
117
|
requirements: []
|
122
118
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.2.
|
119
|
+
rubygems_version: 2.2.2
|
124
120
|
signing_key:
|
125
121
|
specification_version: 4
|
126
122
|
summary: Text processing utilities for Brazilian Portuguese
|
127
123
|
test_files:
|
128
124
|
- spec/lib/pascoale/edits_spec.rb
|
125
|
+
- spec/lib/pascoale/formatter_spec.rb
|
129
126
|
- spec/lib/pascoale/syllable_separator_spec.rb
|
130
127
|
- spec/spec_helper.rb
|