srbovanje 0.2.1 → 2.1.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 +7 -0
- data/CHANGELOG.md +30 -0
- data/README.md +52 -12
- data/lib/i18n_config.rb +1 -0
- data/lib/srbovanje.rb +12 -2
- data/lib/srbovanje/railtie.rb +9 -0
- data/lib/srbovanje/srbovanje.rb +113 -0
- data/lib/srbovanje/string_ext.rb +7 -146
- metadata +29 -52
- data/Rakefile +0 -6
- data/test/string_ext_test.rb +0 -65
- data/test/test_helper.rb +0 -5
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9351fb2b851d7e159a9a63bfd5aaff6919cc2f7053611f3b5e3aeb10534d19b0
|
4
|
+
data.tar.gz: 796729f730d2fb9b8543ef41daa19c847671a5eef9932b430e68648a4d285388
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a3e19ef6cd872795828934f031c82e008d8a63082b665541b7c45c566221f048272e0ff87c5e44452e78b189d6a53e887ebfdca2642ea278e7b8e9b9baef160c
|
7
|
+
data.tar.gz: 53381427a41bec21bf586c3c3054e93df5fb3fc58ffaae5b5f4ff9251d5ded2949a81aabe807d4aa2bad046dd5b45dadced21804d0824638884819a746ccff80
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
## 2.0.0, 2014-07-13
|
2
|
+
* preimenovana metoda na_latinici => latinicom
|
3
|
+
* utisan warning "[deprecated] I18n.enforce_available_locales will default to true in the future..."
|
4
|
+
|
5
|
+
## 1.0.2, 2013-02-26
|
6
|
+
* Railtie za i18n konfigurisanje
|
7
|
+
|
8
|
+
## 1.0.1, 2013-02-26
|
9
|
+
* Konfigurisanje i18n preslovljavanja
|
10
|
+
|
11
|
+
## 1.0.0, 2013-02-25
|
12
|
+
* Novi, čistiji API; izbačen slugify
|
13
|
+
|
14
|
+
## 0.2.1, 2011-01-05
|
15
|
+
* Ruby 1.9.2 fix: upozorenja
|
16
|
+
* Ruby 1.9.2 fix: load path za testove
|
17
|
+
|
18
|
+
## 0.2.0, 2011-01-05
|
19
|
+
* Fix nadogradnje Stringa upotrebom String.class_eval metode
|
20
|
+
* Ruby 1.9 podrška
|
21
|
+
|
22
|
+
## 0.1.0, 2009-03-14
|
23
|
+
* String#slugify
|
24
|
+
|
25
|
+
## 0.0.2, 2009-03-12
|
26
|
+
* "danger" metode (recode_sr_latin!, recode_sr_ascii_latin!)
|
27
|
+
* String.abeceda
|
28
|
+
|
29
|
+
## 0.0.1, 2009-03-12
|
30
|
+
* Inicijalna verzija
|
data/README.md
CHANGED
@@ -1,33 +1,73 @@
|
|
1
1
|
srbovanje
|
2
2
|
=========
|
3
3
|
|
4
|
-
Ruby gem za
|
4
|
+
Ruby gem za preslovanjavanje ćirilice na latinicu i tzv. "ošišanu" latinicu
|
5
5
|
|
6
6
|
|
7
7
|
## Instaliranje
|
8
8
|
|
9
|
-
|
9
|
+
U Gemfile projekta dodajte:
|
10
|
+
|
11
|
+
gem 'srbovanje'
|
10
12
|
|
11
13
|
|
12
14
|
## Korišćenje
|
13
15
|
|
14
|
-
>> "Ђурђевак".
|
16
|
+
>> "Ђурђевак".latinicom
|
15
17
|
=> "Đurđevak"
|
16
18
|
|
17
|
-
>> "
|
18
|
-
=> "
|
19
|
+
>> "Ђурђевак".latinicom_ascii
|
20
|
+
=> "DJurdjevak"
|
19
21
|
|
20
|
-
|
21
|
-
=> "zeleznica-srbije"
|
22
|
+
Ako zatreba, tu je i niz sa slovima abecede:
|
22
23
|
|
23
|
-
>>
|
24
|
+
>> Srbovanje.abeceda
|
24
25
|
=> ["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", "Ž"]
|
25
26
|
|
26
|
-
## Zašto "recode_sr_latin" kao naziv metode?
|
27
27
|
|
28
|
-
|
28
|
+
Ako koristite Srbovanje uz Rails dobićete setovana pravila za preslovljavanja
|
29
|
+
koje koristi i18n gem, tako da će npr. parameterize raditi pravilnije:
|
30
|
+
|
31
|
+
## bez Srbovanja
|
32
|
+
|
33
|
+
>> "Karađorđeva šnicla".parameterize
|
34
|
+
=> "karadordeva-snicla"
|
35
|
+
|
36
|
+
>> "Шабан Шаулић".parameterize
|
37
|
+
=> ""
|
38
|
+
|
39
|
+
## uz Srbovanje
|
40
|
+
|
41
|
+
>> "Karađorđeva šnicla".parameterize
|
42
|
+
=> "karadjordjeva-snicla"
|
43
|
+
|
44
|
+
>> "Шабан Шаулић".parameterize
|
45
|
+
=> "saban-saulic"
|
46
|
+
|
47
|
+
## Slični projekti
|
48
|
+
|
49
|
+
* [Byk](https://github.com/topalovic/byk) - zavidno brža varijanta zahvaljujući C ekstenziji
|
50
|
+
* [preslovi](https://github.com/dejan/preslovi) - go paket i šel komanda
|
51
|
+
|
52
|
+
## MIT Licence
|
53
|
+
|
54
|
+
Copyright (c) 2009 Dejan Simic
|
29
55
|
|
56
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
57
|
+
a copy of this software and associated documentation files (the
|
58
|
+
"Software"), to deal in the Software without restriction, including
|
59
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
60
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
61
|
+
permit persons to whom the Software is furnished to do so, subject to
|
62
|
+
the following conditions:
|
30
63
|
|
31
|
-
|
64
|
+
The above copyright notice and this permission notice shall be
|
65
|
+
included in all copies or substantial portions of the Software.
|
32
66
|
|
33
|
-
|
67
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
68
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
69
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
70
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
71
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
72
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
73
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/lib/i18n_config.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I18n.backend.store_translations(:sr, :i18n => {:transliterate => {:rule => Srbovanje::LATINICA_ASCII_MAP }})
|
data/lib/srbovanje.rb
CHANGED
@@ -1,5 +1,15 @@
|
|
1
|
-
#
|
1
|
+
# encoding: utf-8
|
2
2
|
|
3
3
|
$KCODE = 'UTF8' if RUBY_VERSION.to_f < 1.9
|
4
4
|
|
5
|
-
require 'srbovanje/
|
5
|
+
require 'srbovanje/srbovanje'
|
6
|
+
require 'srbovanje/string_ext'
|
7
|
+
|
8
|
+
if defined?(Rails)
|
9
|
+
require 'srbovanje/railtie'
|
10
|
+
elsif defined?(I18n)
|
11
|
+
require 'i18n_config'
|
12
|
+
end
|
13
|
+
|
14
|
+
module Srbovanje
|
15
|
+
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Srbovanje
|
4
|
+
|
5
|
+
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 Ž)
|
6
|
+
|
7
|
+
LATINICA_FULL_MAP = {
|
8
|
+
'а' => 'a',
|
9
|
+
'А' => 'A',
|
10
|
+
'б' => 'b',
|
11
|
+
'Б' => 'B',
|
12
|
+
'в' => 'v',
|
13
|
+
'В' => 'V',
|
14
|
+
'г' => 'g',
|
15
|
+
'Г' => 'G',
|
16
|
+
'д' => 'd',
|
17
|
+
'Д' => 'D',
|
18
|
+
'ђ' => 'đ',
|
19
|
+
'Ђ' => 'Đ',
|
20
|
+
'е' => 'e',
|
21
|
+
'Е' => 'E',
|
22
|
+
'ж' => 'ž',
|
23
|
+
'Ж' => 'Ž',
|
24
|
+
'з' => 'z',
|
25
|
+
'З' => 'Z',
|
26
|
+
'и' => 'i',
|
27
|
+
'И' => 'I',
|
28
|
+
'ј' => 'j',
|
29
|
+
'Ј' => 'J',
|
30
|
+
'к' => 'k',
|
31
|
+
'К' => 'K',
|
32
|
+
'л' => 'l',
|
33
|
+
'Л' => 'L',
|
34
|
+
'љ' => 'lj',
|
35
|
+
'Љ' => 'LJ',
|
36
|
+
'м' => 'm',
|
37
|
+
'М' => 'M',
|
38
|
+
'н' => 'n',
|
39
|
+
'Н' => 'N',
|
40
|
+
'њ' => 'nj',
|
41
|
+
'Њ' => 'NJ',
|
42
|
+
'о' => 'o',
|
43
|
+
'О' => 'O',
|
44
|
+
'п' => 'p',
|
45
|
+
'П' => 'P',
|
46
|
+
'р' => 'r',
|
47
|
+
'Р' => 'R',
|
48
|
+
'с' => 's',
|
49
|
+
'С' => 'S',
|
50
|
+
'т' => 't',
|
51
|
+
'Т' => 'T',
|
52
|
+
'ћ' => 'ć',
|
53
|
+
'Ћ' => 'Ć',
|
54
|
+
'ц' => 'c',
|
55
|
+
'Ц' => 'C',
|
56
|
+
'у' => 'u',
|
57
|
+
'У' => 'U',
|
58
|
+
'ф' => 'f',
|
59
|
+
'Ф' => 'F',
|
60
|
+
'х' => 'h',
|
61
|
+
'Х' => 'H',
|
62
|
+
'ч' => 'č',
|
63
|
+
'Ч' => 'Č',
|
64
|
+
'џ' => 'dž',
|
65
|
+
'Џ' => 'DŽ',
|
66
|
+
'ш' => 'š',
|
67
|
+
'Ш' => 'Š'
|
68
|
+
}
|
69
|
+
|
70
|
+
LATINICA_ASCII_MAP = LATINICA_FULL_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
|
+
)
|
94
|
+
|
95
|
+
LATINICOM_REGEXP = Regexp.union(LATINICA_FULL_MAP.keys)
|
96
|
+
|
97
|
+
LATINICA_ASCII_REGEXP = Regexp.union(LATINICA_ASCII_MAP.keys)
|
98
|
+
|
99
|
+
def latinicom(text)
|
100
|
+
text.gsub(LATINICOM_REGEXP, LATINICA_FULL_MAP)
|
101
|
+
end
|
102
|
+
|
103
|
+
def latinicom_ascii(text)
|
104
|
+
text.gsub(LATINICA_ASCII_REGEXP, LATINICA_ASCII_MAP)
|
105
|
+
end
|
106
|
+
|
107
|
+
def abeceda
|
108
|
+
ABECEDA
|
109
|
+
end
|
110
|
+
|
111
|
+
extend self
|
112
|
+
|
113
|
+
end
|
data/lib/srbovanje/string_ext.rb
CHANGED
@@ -1,154 +1,15 @@
|
|
1
|
-
#
|
1
|
+
# encoding: utf-8
|
2
2
|
|
3
3
|
String.class_eval do
|
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
|
94
|
-
|
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
|
98
|
-
|
99
|
-
def recode_sr_latin
|
100
|
-
self.class.recode(self.dup, self.class.recode_sr_latin_map)
|
101
|
-
end
|
102
|
-
|
103
|
-
def recode_sr_latin!
|
104
|
-
self.class.recode(self, self.class.recode_sr_latin_map)
|
105
|
-
end
|
106
|
-
|
107
|
-
def recode_sr_ascii_latin
|
108
|
-
self.class.recode(self.dup, self.class.recode_sr_ascii_latin_map)
|
109
|
-
end
|
110
4
|
|
111
|
-
|
112
|
-
|
5
|
+
# Preslovljava na latinicu
|
6
|
+
def latinicom
|
7
|
+
Srbovanje.latinicom(self)
|
113
8
|
end
|
114
9
|
|
115
|
-
|
116
|
-
|
117
|
-
|
10
|
+
# Preslovljava na ASCII ("ošišanu") latinicu
|
11
|
+
def latinicom_ascii
|
12
|
+
Srbovanje.latinicom_ascii(self)
|
118
13
|
end
|
119
14
|
|
120
|
-
private
|
121
|
-
|
122
|
-
# NOTE: slighlty modified after porting from ActiveSupport
|
123
|
-
#
|
124
|
-
# Replaces special characters in a string so that it may be used as part of a 'pretty' URL.
|
125
|
-
#
|
126
|
-
# ==== Examples
|
127
|
-
#
|
128
|
-
# @person = Person.find(1)
|
129
|
-
# # => #<Person id: 1, name: "Donald E. Knuth">
|
130
|
-
#
|
131
|
-
# <%= link_to(@person.name, person_path(@person)) %>
|
132
|
-
# # => <a href="/person/1-donald-e-knuth">Donald E. Knuth</a>
|
133
|
-
#
|
134
|
-
def parameterize(string, sep = '-')
|
135
|
-
# nil is same as blank
|
136
|
-
sep = sep || ''
|
137
|
-
parameterized_string = string.gsub(/[^a-z0-9\-_\+]+/i, sep)
|
138
|
-
# Turn unwanted chars into the seperator
|
139
|
-
unless sep.empty?
|
140
|
-
re_sep = Regexp.escape(sep)
|
141
|
-
# No more than one of the separator in a row.
|
142
|
-
parameterized_string.gsub!(/#{re_sep}{2,}/, sep)
|
143
|
-
# Remove leading/trailing separator.
|
144
|
-
parameterized_string.gsub!(/^#{re_sep}|#{re_sep}$/i, '')
|
145
|
-
end
|
146
|
-
parameterized_string.downcase
|
147
|
-
end
|
148
|
-
|
149
|
-
def self.recode(str, mapping)
|
150
|
-
str.gsub!(/.+?/) do |chr|
|
151
|
-
mapping[chr] || chr
|
152
|
-
end
|
153
|
-
end
|
154
15
|
end
|
metadata
CHANGED
@@ -1,72 +1,49 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: srbovanje
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease: false
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
- 1
|
10
|
-
version: 0.2.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.1.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Dejan Simic
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
date: 2011-01-05 00:00:00 +01:00
|
19
|
-
default_executable:
|
11
|
+
date: 2020-08-30 00:00:00.000000000 Z
|
20
12
|
dependencies: []
|
21
|
-
|
22
|
-
description: "Ruby gem za transliteraciju \xC4\x87irilice na latinicu i tzv. ASCII latinicu."
|
13
|
+
description: Transliteracija ćirilice na latinicu i tzv. ASCII latinicu.
|
23
14
|
email: desimic@gmail.com
|
24
15
|
executables: []
|
25
|
-
|
26
16
|
extensions: []
|
27
|
-
|
28
17
|
extra_rdoc_files: []
|
29
|
-
|
30
|
-
|
31
|
-
- Rakefile
|
32
|
-
- lib/srbovanje/string_ext.rb
|
33
|
-
- lib/srbovanje.rb
|
34
|
-
- test/string_ext_test.rb
|
35
|
-
- test/test_helper.rb
|
18
|
+
files:
|
19
|
+
- CHANGELOG.md
|
36
20
|
- README.md
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
21
|
+
- lib/i18n_config.rb
|
22
|
+
- lib/srbovanje.rb
|
23
|
+
- lib/srbovanje/railtie.rb
|
24
|
+
- lib/srbovanje/srbovanje.rb
|
25
|
+
- lib/srbovanje/string_ext.rb
|
26
|
+
homepage: https://github.com/dejan/srbovanje
|
27
|
+
licenses:
|
28
|
+
- MIT
|
29
|
+
metadata: {}
|
41
30
|
post_install_message:
|
42
31
|
rdoc_options: []
|
43
|
-
|
44
|
-
require_paths:
|
32
|
+
require_paths:
|
45
33
|
- lib
|
46
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
47
|
-
|
48
|
-
requirements:
|
34
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
49
36
|
- - ">="
|
50
|
-
- !ruby/object:Gem::Version
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
version: "0"
|
55
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
|
-
none: false
|
57
|
-
requirements:
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
58
41
|
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
segments:
|
62
|
-
- 0
|
63
|
-
version: "0"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
64
44
|
requirements: []
|
65
|
-
|
66
|
-
rubyforge_project:
|
67
|
-
rubygems_version: 1.3.7
|
45
|
+
rubygems_version: 3.1.2
|
68
46
|
signing_key:
|
69
|
-
specification_version:
|
70
|
-
summary:
|
47
|
+
specification_version: 4
|
48
|
+
summary: Transliteracija ćirilice na latinicu i tzv. ASCII latinicu.
|
71
49
|
test_files: []
|
72
|
-
|
data/Rakefile
DELETED
data/test/string_ext_test.rb
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
$: << "."
|
3
|
-
|
4
|
-
require File.dirname(__FILE__) + '/test_helper'
|
5
|
-
|
6
|
-
class TestStringExt < Test::Unit::TestCase
|
7
|
-
def test_recode_sr_latin
|
8
|
-
# don't change argument
|
9
|
-
str = "ЊЕГОШ"
|
10
|
-
assert_equal("NJEGOŠ", str.recode_sr_latin)
|
11
|
-
assert_equal("ЊЕГОШ", str)
|
12
|
-
|
13
|
-
# plain
|
14
|
-
assert_equal("NJEGOŠ", "ЊЕГОШ".recode_sr_latin)
|
15
|
-
assert_equal("Šaban Šaulić", "Шабан Шаулић".recode_sr_latin)
|
16
|
-
assert_equal("elektrodistribucija", "електродистрибуција".recode_sr_latin)
|
17
|
-
assert_equal("Đurđevak", "Ђурђевак".recode_sr_latin)
|
18
|
-
|
19
|
-
# non_convertive_characters
|
20
|
-
assert_equal("Latinica", "Latinica".recode_sr_latin)
|
21
|
-
assert_equal('[]2#}(,.);2@$"', '[]2#}(,.);2@$"'.recode_sr_latin)
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_recode_sr_latin!
|
25
|
-
str = "ноћ"
|
26
|
-
assert_equal("noć", str.recode_sr_latin!)
|
27
|
-
assert_equal("noć", str)
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_recode_sr_ascii_latin
|
31
|
-
str = "Железница Србије"
|
32
|
-
assert_equal("Zeleznica Srbije", str.recode_sr_ascii_latin)
|
33
|
-
assert_equal("Железница Србије", str)
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_recode_sr_ascii_latin!
|
37
|
-
str = "ноћ"
|
38
|
-
assert_equal("noc", str.recode_sr_ascii_latin!)
|
39
|
-
assert_equal("noc", str)
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_abeceda
|
43
|
-
assert_equal(30, String.abeceda.size)
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_slugify
|
47
|
-
assert_equal("zeleznica-srbije", "Железница Србије".slugify)
|
48
|
-
assert_equal("kako-je", "Kako je?".slugify)
|
49
|
-
assert_equal("mis-zaba", "miš,žaba".slugify)
|
50
|
-
assert_equal("mis-zaba", "миш, жаба".slugify)
|
51
|
-
assert_equal("agencija", " aGenCIJa ".slugify)
|
52
|
-
assert_equal("vamo-tamo", "vamo-tamo".slugify)
|
53
|
-
assert_equal("vamo-tamo", "vamo tamo".slugify)
|
54
|
-
assert_equal("pokvarenspejs", "Pokvaren Spejs".slugify(nil))
|
55
|
-
assert_equal("abcdeavioni", "a b c d e avioni".slugify(''))
|
56
|
-
assert_equal("-", "び諸芸や奇抜な衣装".slugify)
|
57
|
-
assert_equal("-", "び諸芸や奇 抜な衣 装 び諸芸や 奇抜な衣装".slugify)
|
58
|
-
assert_equal("", "び諸芸や奇抜な衣装".slugify('-', false))
|
59
|
-
assert_equal("-", "び諸芸や奇抜な衣装".slugify('-', true))
|
60
|
-
assert_equal("+", "び諸芸や奇抜な衣装 び諸芸や奇抜な衣装".slugify('+'))
|
61
|
-
assert_equal("ako-ako", 'ako, ako'.slugify)
|
62
|
-
assert_equal("ako-ako", 'ako,ako'.slugify)
|
63
|
-
assert_equal("ako-ako", 'ako ako'.slugify)
|
64
|
-
end
|
65
|
-
end
|