polskie_stringi 0.0.4 → 0.0.5
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/Rakefile +1 -2
- data/lib/polskie_stringi.rb +27 -21
- metadata +3 -3
data/Rakefile
CHANGED
@@ -36,13 +36,12 @@ PKG_FILES = FileList[
|
|
36
36
|
|
37
37
|
spec = Gem::Specification.new do |s|
|
38
38
|
s.name = "polskie_stringi"
|
39
|
-
s.version = "0.0.
|
39
|
+
s.version = "0.0.5"
|
40
40
|
s.author = "v1x100r"
|
41
41
|
s.email = "v1x100r@gmail.com"
|
42
42
|
s.homepage = ""
|
43
43
|
s.platform = Gem::Platform::RUBY
|
44
44
|
s.summary = "Rozszerza funkcje klasy String o obsługę polskich znaków"
|
45
|
-
s.description = "Funkcje upcase, downcase, capitalize, upcase!, downcase!, capitalize! obsługują od teraz polskie znaki. Dodatkowo 2 nowe funkcje no_pl i no_pl! które czyszczą ogonki ze znaków, oraz metoda String.polish_chars pobierająca tablicę z polskimi literami."
|
46
45
|
s.files = PKG_FILES.to_a
|
47
46
|
s.require_path = "lib"
|
48
47
|
s.has_rdoc = false
|
data/lib/polskie_stringi.rb
CHANGED
@@ -2,47 +2,46 @@
|
|
2
2
|
|
3
3
|
class ::String
|
4
4
|
|
5
|
-
# zmień wszystkie litery na duże (łącznie z polskimi)
|
6
5
|
def upcase
|
7
|
-
#
|
8
|
-
|
6
|
+
# pl_replace z tablicy małych liter na tablicę dużych liter
|
7
|
+
pl_replace(String.polish_chars('small') + ('a'..'z').to_a, String.polish_chars('big') + ('A'..'Z').to_a)
|
8
|
+
end
|
9
|
+
|
10
|
+
def upcase!
|
11
|
+
replace upcase
|
9
12
|
end
|
10
13
|
|
11
|
-
# zmień wszystkie litery na małe (łącznie z polskimi)
|
12
14
|
def downcase
|
13
|
-
#
|
14
|
-
|
15
|
+
# pl_replace z tablicy dużych liter na tablicę małych liter
|
16
|
+
pl_replace(String.polish_chars('small') + ('A'..'Z').to_a, String.polish_chars('small') + ('A'..'Z').to_a)
|
17
|
+
end
|
18
|
+
|
19
|
+
def downcase!
|
20
|
+
replace downcase
|
15
21
|
end
|
16
22
|
|
17
|
-
# usuń polskie ogonki (łącznie z polskimi)
|
18
23
|
def no_pl
|
19
|
-
#
|
20
|
-
|
24
|
+
# pl_replace z tablicy polskich małych i dużych liter na tablicę odpowiadających im kodów ascii
|
25
|
+
pl_replace(String.polish_chars, ('a'..'z').to_a + ('A'..'Z').to_a)
|
21
26
|
end
|
22
27
|
|
23
28
|
def no_pl!
|
24
29
|
replace no_pl
|
25
30
|
end
|
26
31
|
|
27
|
-
# pierwsza litera
|
32
|
+
# pierwsza litera upcase, reszta downcase
|
28
33
|
def capitalize
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
def upcase!
|
33
|
-
replace upcase
|
34
|
-
end
|
35
|
-
|
36
|
-
def downcase!
|
37
|
-
replace downcase
|
34
|
+
s = self.downcase
|
35
|
+
s[0] = s[0].upcase if s.size > 0
|
36
|
+
s
|
38
37
|
end
|
39
38
|
|
40
39
|
def capitalize!
|
41
40
|
replace capitalize
|
42
41
|
end
|
43
42
|
|
44
|
-
#
|
45
|
-
# ('small' => tylko małe, 'big' => tylko duże, 'all' lub
|
43
|
+
# tablica polskich znaków, np do użycia z regexpami jako zakres
|
44
|
+
# ('small' => tylko małe, 'big' => tylko duże, 'all' lub brak => wszystkie)
|
46
45
|
def self.polish_chars(size = 'all')
|
47
46
|
small = %w[ą ę ś ć ź ż ó ł ń]
|
48
47
|
big = %w[Ą Ę Ś Ć Ź Ż Ó Ł Ń]
|
@@ -55,4 +54,11 @@ class ::String
|
|
55
54
|
small + big
|
56
55
|
end
|
57
56
|
end
|
57
|
+
|
58
|
+
protected
|
59
|
+
|
60
|
+
# zamienia znaki z tablicy search na tablicę replace
|
61
|
+
def pl_replace(search, replace)
|
62
|
+
self.chars.collect{|c| (id = search.index(c)) ? replace[id] : c}.join('')
|
63
|
+
end
|
58
64
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 5
|
9
|
+
version: 0.0.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- v1x100r
|
@@ -18,7 +18,7 @@ date: 2011-02-18 00:00:00 +01:00
|
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|
21
|
-
description:
|
21
|
+
description:
|
22
22
|
email: v1x100r@gmail.com
|
23
23
|
executables: []
|
24
24
|
|