fk_str 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/LICENSE +1 -1
  2. data/Rakefile +3 -1
  3. data/lib/fk_str.rb +20 -0
  4. metadata +5 -5
  5. data/test/test_fk_str.rb +0 -264
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 Guilherme Baptista
1
+ Copyright (c) 2013 Guilherme Baptista
2
2
  https://github.com/gbaptista/fk_str
3
3
 
4
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
data/Rakefile CHANGED
@@ -1,7 +1,9 @@
1
1
  require 'rake/testtask'
2
2
 
3
3
  Rake::TestTask.new do |t|
4
- t.libs << 'test'
4
+
5
+ t.test_files = FileList['test/test_*.rb']
6
+
5
7
  end
6
8
 
7
9
  desc 'Run tests'
@@ -76,6 +76,26 @@ module FkStr
76
76
 
77
77
  end
78
78
 
79
+ def self.upcase w
80
+
81
+ return w if w.to_s == ''
82
+
83
+ # Cria uma Array apenas com os caracteres necessários por questões de performance.
84
+ letters = []
85
+ clean_word = self.remove_accents(w).downcase.gsub(/[^a-z]/, '')
86
+ clean_word.split('').uniq.each { |lt| @@letters_by_letter[lt].each { |l| letters << l } }
87
+
88
+ letters.each do |l|
89
+
90
+ # Transforma tudo em maiúsculo.
91
+ w = w.gsub l[0], l[1]
92
+
93
+ end
94
+
95
+ return w
96
+
97
+ end
98
+
79
99
  def self.downcase w
80
100
 
81
101
  return w if w.to_s == ''
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fk_str
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-25 00:00:00.000000000 Z
12
+ date: 2013-01-19 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: String manipulation.
15
15
  email: guilhermebaptistasilva@gmail.com
@@ -21,9 +21,9 @@ files:
21
21
  - Rakefile
22
22
  - lib/fk_str.rb
23
23
  - lib/fk_str/dictionary.rb
24
- - test/test_fk_str.rb
25
24
  homepage: https://github.com/gbaptista/fk_str
26
- licenses: []
25
+ licenses:
26
+ - MIT
27
27
  post_install_message:
28
28
  rdoc_options: []
29
29
  require_paths:
@@ -33,7 +33,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
33
33
  requirements:
34
34
  - - ! '>='
35
35
  - !ruby/object:Gem::Version
36
- version: '0'
36
+ version: 1.9.3
37
37
  required_rubygems_version: !ruby/object:Gem::Requirement
38
38
  none: false
39
39
  requirements:
@@ -1,264 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'test/unit'
4
- require 'fk_str'
5
-
6
- class FkStrTest < Test::Unit::TestCase
7
-
8
- def test_treat_encoding
9
-
10
- assert_equal(
11
- 'çUTF-8',
12
- FkStr.treat_encoding("\xE7")+FkStr.treat_encoding("\xE7").encoding.to_s.upcase
13
- )
14
-
15
- assert_equal(
16
- '©UTF-8',
17
- FkStr.treat_encoding("\xC2\xA9")+FkStr.treat_encoding("\xC2\xA9").encoding.to_s.upcase
18
- )
19
-
20
- assert_equal(
21
- 'caçaUTF-8',
22
- FkStr.treat_encoding("ca\xE7a")+FkStr.treat_encoding("ca\xE7a").encoding.to_s.upcase
23
- )
24
-
25
- assert_equal(
26
- 'casaUTF-8',
27
- FkStr.treat_encoding('casa')+FkStr.treat_encoding('casa').encoding.to_s.upcase
28
- )
29
-
30
- end
31
-
32
- def test_is_eq
33
-
34
- assert_equal(
35
- true,
36
- FkStr.is_eq('Hangar 110', 'Hangar 110', 40)
37
- )
38
-
39
- assert_equal(
40
- true,
41
- FkStr.is_eq('Armagedon + Atos de Vingança', 'Armagedom')
42
- )
43
-
44
- assert_equal(
45
- false,
46
- FkStr.is_eq('Gato Cat', 'Cachorro Dog')
47
- )
48
-
49
- assert_equal(
50
- true,
51
- FkStr.is_eq('Creedence Clearwater Revisited', 'Creedence Clearwater')
52
- )
53
-
54
- end
55
-
56
- def test_to_slug
57
-
58
- assert_equal(
59
- 'teste-dog',
60
- FkStr.to_slug('teste:dog')
61
- )
62
-
63
- assert_equal(
64
- 'centro-rio-de-janeiro-rj',
65
- FkStr.to_slug('Centro - Rio de Janeiro [RJ]')
66
- )
67
-
68
- assert_equal(
69
- 'sao-paulo-sp',
70
- FkStr.to_slug('São Paulo/SP')
71
- )
72
-
73
- assert_equal(
74
- 'sao-paulo-sp',
75
- FkStr.to_slug('São Paulo_SP')
76
- )
77
-
78
- end
79
-
80
- def test_to_term
81
-
82
- assert_equal(
83
- 'kasadujkakurururi',
84
- FkStr.to_term('casa & dog and cachorro e lorem')
85
- )
86
-
87
- assert_equal(
88
- 'tistiduj',
89
- FkStr.to_term('teste:de\dog')
90
- )
91
-
92
- assert_equal(
93
- 'saupauru',
94
- FkStr.to_term('São Paulo-SP')
95
- )
96
-
97
- assert_equal(
98
- 'tistiduj',
99
- FkStr.to_term('teste:de:dog')
100
- )
101
-
102
- end
103
-
104
- def test_remove_accents
105
-
106
- assert_equal(
107
- 'Sao Jose do Rio Preto - SP',
108
- FkStr.remove_accents('São José do Rio Preto - SP')
109
- )
110
-
111
- assert_equal(
112
- 'Sao Paulo',
113
- FkStr.remove_accents('São Paulo')
114
- )
115
-
116
- assert_equal(
117
- 'Acougue',
118
- FkStr.remove_accents('Açougue')
119
- )
120
-
121
- assert_equal(
122
- 'Lorem Ipsum',
123
- FkStr.remove_accents('Lôrém Ipsum')
124
- )
125
-
126
- end
127
-
128
- def test_downcase
129
-
130
- assert_equal(
131
- 'açúcar',
132
- FkStr.downcase('AÇÚCAR')
133
- )
134
-
135
- end
136
-
137
- def test_upcasewords
138
-
139
- assert_equal(
140
- 'Charlie Brown Jr.',
141
- FkStr.upcasewords('CHARLIE BROWN JR.')
142
- )
143
-
144
- assert_equal(
145
- 'Coldplay',
146
- FkStr.upcasewords('COLDPLAY')
147
- )
148
-
149
- assert_equal(
150
- 'Queensrÿche',
151
- FkStr.upcasewords('QUEENSRŸCHE')
152
- )
153
-
154
- assert_equal(
155
- 'Mindflow',
156
- FkStr.upcasewords('MINDFLOW')
157
- )
158
-
159
- end
160
-
161
- def test_remove_if_ends_with
162
-
163
- assert_equal(
164
- 'Natal La Barra',
165
- FkStr.remove_if_ends_with(
166
- 'Natal La Barra - Caxias do Sul / RS',
167
- ['La Barra', 'Caxias do Sul', 'RS', '/', '-'],
168
- ['Natal'],
169
- 1
170
- )
171
- )
172
-
173
- assert_equal(
174
- 'Natal La Barra -',
175
- FkStr.remove_if_ends_with(
176
- 'Natal La Barra - Caxias do Sul / RS',
177
- ['La Barra', 'Caxias do Sul', 'RS', '/', '-'],
178
- ['Natal'],
179
- 2
180
- )
181
- )
182
-
183
- assert_equal(
184
- 'Natal La Barra - Caxias do Sul',
185
- FkStr.remove_if_ends_with(
186
- 'Natal La Barra - Caxias do Sul / RS',
187
- ['La Barra', 'Caxias do Sul', 'RS', '/', '-'],
188
- ['Natal'],
189
- 3
190
- )
191
- )
192
-
193
- assert_equal(
194
- 'Masp',
195
- FkStr.remove_if_ends_with('Masp São Paulo/SP', ['São Paulo', 'SP', '/'])
196
- )
197
-
198
- end
199
-
200
- def test_extract_dates
201
-
202
- assert_equal(
203
- [Time.new(2012, 12, 6)].uniq.sort,
204
- FkStr.extract_dates('December 06, 2012', Time.new(2012, 9, 12))
205
- )
206
-
207
- assert_equal(
208
- [Time.new(2012, 9, 14)].uniq.sort,
209
- FkStr.extract_dates('FRI 09.14.2012', Time.new(2012, 9, 12), true)
210
- )
211
-
212
- assert_equal(
213
- [Time.new(2011, 12, 8), Time.new(2012, 1, 9)].uniq.sort,
214
- FkStr.extract_dates('8/dez lorem 9/jan/2012', Time.new(2011, 10, 8))
215
- )
216
-
217
- assert_equal(
218
- [Time.new(2012, 1, 2)].uniq.sort,
219
- FkStr.extract_dates('2 de janeiro', Time.new(2011, 10, 8))
220
- )
221
-
222
- end
223
-
224
- def test_extract_time
225
-
226
- assert_equal(
227
- Time.new(2011, 07, 14, 22, 18, 0),
228
- FkStr.extract_time(
229
- 'Thu, 14 Jul 2011 22:18:49 +0000',
230
- FkStr.extract_dates('Thu, 14 Jul 2011 22:18:49 +0000',Time.new(2012, 5, 28)).first,
231
- Time.new(2012, 5, 28)
232
- )
233
- )
234
-
235
- assert_equal(
236
- Time.new(2011, 07, 14, 16, 15, 0),
237
- FkStr.extract_time(
238
- '14 Jul 2011 16:15',
239
- FkStr.extract_dates('14 Jul 2011 16:15',Time.new(2012, 5, 28)).first,
240
- Time.new(2012, 5, 28)
241
- )
242
- )
243
-
244
- assert_equal(
245
- Time.new(2011, 07, 14, 9, 0, 0),
246
- FkStr.extract_time(
247
- '14 Jul 2011 9:00',
248
- FkStr.extract_dates('14 Jul 2011 9:00',Time.new(2012, 5, 28)).first,
249
- Time.new(2012, 5, 28)
250
- )
251
- )
252
-
253
- assert_equal(
254
- Time.new(2011, 07, 14, 7, 35, 0),
255
- FkStr.extract_time(
256
- '14 Jul 2011 07:35',
257
- FkStr.extract_dates('14 Jul 2011 07:35',Time.new(2012, 5, 28)).first,
258
- Time.new(2012, 5, 28)
259
- )
260
- )
261
-
262
- end
263
-
264
- end