srbovanje 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +6 -1
- data/lib/srbovanje/string_ext.rb +97 -93
- data/test/string_ext_test.rb +1 -0
- metadata +3 -3
data/README.md
CHANGED
@@ -17,10 +17,15 @@ Ruby gem za transliteraciju ćirilice na latinicu i tzv. ASCII latinicu
|
|
17
17
|
>> "Железница Србије".recode_sr_ascii_latin
|
18
18
|
=> "Zeleznica Srbije"
|
19
19
|
|
20
|
+
>> "Железница Србије".slugify
|
21
|
+
=> "zeleznica-srbije"
|
22
|
+
|
23
|
+
>> String.abeceda
|
24
|
+
=> ["A", "B", "C", "Č", "Ć", "D", "DŽ", "Đ", "E", "F", "G", "H", "I", "J", "K", "L", "LJ", "M", "N", "NJ", "O", "P", "R", "S", "Š", "T", "U", "V", "Z", "Ž"]
|
20
25
|
|
21
26
|
## Zašto "recode_sr_latin" kao naziv metode?
|
22
27
|
|
23
|
-
Zbog http://man.he.net/man1/recode-sr-latin
|
28
|
+
Zbog <http://man.he.net/man1/recode-sr-latin>
|
24
29
|
|
25
30
|
|
26
31
|
## Autor
|
data/lib/srbovanje/string_ext.rb
CHANGED
@@ -1,111 +1,115 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
String.class_eval do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
4
|
+
def self.recode_sr_latin_map
|
5
|
+
@@recode_sr_latin_map ||= {
|
6
|
+
'а' => 'a',
|
7
|
+
'А' => 'A',
|
8
|
+
'б' => 'b',
|
9
|
+
'Б' => 'B',
|
10
|
+
'в' => 'v',
|
11
|
+
'В' => 'V',
|
12
|
+
'г' => 'g',
|
13
|
+
'Г' => 'G',
|
14
|
+
'д' => 'd',
|
15
|
+
'Д' => 'D',
|
16
|
+
'ђ' => 'đ',
|
17
|
+
'Ђ' => 'Đ',
|
18
|
+
'е' => 'e',
|
19
|
+
'Е' => 'E',
|
20
|
+
'ж' => 'ž',
|
21
|
+
'Ж' => 'Ž',
|
22
|
+
'з' => 'z',
|
23
|
+
'З' => 'Z',
|
24
|
+
'и' => 'i',
|
25
|
+
'И' => 'I',
|
26
|
+
'ј' => 'j',
|
27
|
+
'Ј' => 'J',
|
28
|
+
'к' => 'k',
|
29
|
+
'К' => 'K',
|
30
|
+
'л' => 'l',
|
31
|
+
'Л' => 'L',
|
32
|
+
'љ' => 'lj',
|
33
|
+
'Љ' => 'LJ',
|
34
|
+
'м' => 'm',
|
35
|
+
'М' => 'M',
|
36
|
+
'н' => 'n',
|
37
|
+
'Н' => 'N',
|
38
|
+
'њ' => 'nj',
|
39
|
+
'Њ' => 'NJ',
|
40
|
+
'о' => 'o',
|
41
|
+
'О' => 'O',
|
42
|
+
'п' => 'p',
|
43
|
+
'П' => 'P',
|
44
|
+
'р' => 'r',
|
45
|
+
'Р' => 'R',
|
46
|
+
'с' => 's',
|
47
|
+
'С' => 'S',
|
48
|
+
'т' => 't',
|
49
|
+
'Т' => 'T',
|
50
|
+
'ћ' => 'ć',
|
51
|
+
'Ћ' => 'Ć',
|
52
|
+
'ц' => 'c',
|
53
|
+
'Ц' => 'C',
|
54
|
+
'у' => 'u',
|
55
|
+
'У' => 'U',
|
56
|
+
'ф' => 'f',
|
57
|
+
'Ф' => 'F',
|
58
|
+
'х' => 'h',
|
59
|
+
'Х' => 'H',
|
60
|
+
'ч' => 'č',
|
61
|
+
'Ч' => 'Č',
|
62
|
+
'џ' => 'dž',
|
63
|
+
'Џ' => 'DŽ',
|
64
|
+
'ш' => 'š',
|
65
|
+
'Ш' => 'Š' }
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.recode_sr_ascii_latin_map
|
69
|
+
@@recode_sr_ascii_latin_map ||=
|
70
|
+
recode_sr_latin_map.merge(
|
71
|
+
'ћ' => 'c',
|
72
|
+
'ć' => 'c',
|
73
|
+
'ч' => 'c',
|
74
|
+
'č' => 'c',
|
75
|
+
'Ћ' => 'C',
|
76
|
+
'Ć' => 'C',
|
77
|
+
'Ч' => 'C',
|
78
|
+
'Č' => 'C',
|
79
|
+
'ж' => 'z',
|
80
|
+
'ž' => 'z',
|
81
|
+
'Ж' => 'Z',
|
82
|
+
'Ž' => 'Z',
|
83
|
+
'š' => 's',
|
84
|
+
'ш' => 's',
|
85
|
+
'Ш' => 'S',
|
86
|
+
'Š' => 'S',
|
87
|
+
'đ' => 'dj',
|
88
|
+
'ђ' => 'dj',
|
89
|
+
'Ђ' => 'DJ',
|
90
|
+
'Đ' => 'DJ',
|
91
|
+
'џ' => 'dz',
|
92
|
+
'Џ' => 'DZ')
|
93
|
+
end
|
65
94
|
|
66
|
-
|
67
|
-
@@
|
68
|
-
|
69
|
-
'ć' => 'c',
|
70
|
-
'ч' => 'c',
|
71
|
-
'č' => 'c',
|
72
|
-
'Ћ' => 'C',
|
73
|
-
'Ć' => 'C',
|
74
|
-
'Ч' => 'C',
|
75
|
-
'Č' => 'C',
|
76
|
-
'ж' => 'z',
|
77
|
-
'ž' => 'z',
|
78
|
-
'Ж' => 'Z',
|
79
|
-
'Ž' => 'Z',
|
80
|
-
'š' => 's',
|
81
|
-
'ш' => 's',
|
82
|
-
'Ш' => 'S',
|
83
|
-
'Š' => 'S',
|
84
|
-
'đ' => 'dj',
|
85
|
-
'ђ' => 'dj',
|
86
|
-
'Ђ' => 'DJ',
|
87
|
-
'Đ' => 'DJ',
|
88
|
-
'џ' => 'dz',
|
89
|
-
'Џ' => 'DZ')
|
95
|
+
def self.abeceda
|
96
|
+
@@abeceda ||= %w(A B C Č Ć D DŽ Đ E F G H I J K L LJ M N NJ O P R S Š T U V Z Ž)
|
97
|
+
end
|
90
98
|
|
91
99
|
def recode_sr_latin
|
92
|
-
self.class.recode(self.dup,
|
100
|
+
self.class.recode(self.dup, self.class.recode_sr_latin_map)
|
93
101
|
end
|
94
102
|
|
95
103
|
def recode_sr_latin!
|
96
|
-
self.class.recode(self,
|
104
|
+
self.class.recode(self, self.class.recode_sr_latin_map)
|
97
105
|
end
|
98
106
|
|
99
107
|
def recode_sr_ascii_latin
|
100
|
-
self.class.recode(self.dup,
|
108
|
+
self.class.recode(self.dup, self.class.recode_sr_ascii_latin_map)
|
101
109
|
end
|
102
110
|
|
103
111
|
def recode_sr_ascii_latin!
|
104
|
-
self.class.recode(self,
|
105
|
-
end
|
106
|
-
|
107
|
-
def self.abeceda
|
108
|
-
@@abeceda ||= %w(A B C Č Ć D DŽ Đ E F G H I J K L LJ M N NJ O P R S Š T U V Z Ž)
|
112
|
+
self.class.recode(self, self.class.recode_sr_ascii_latin_map)
|
109
113
|
end
|
110
114
|
|
111
115
|
def slugify(separator = '-', return_separator_if_empty = true)
|
data/test/string_ext_test.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: srbovanje
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 1
|
10
|
+
version: 0.2.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Dejan Simic
|