rutils 1.1.4 → 2.0.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.
- data/.gemtest +0 -0
- data/History.txt +10 -0
- data/Manifest.txt +4 -8
- data/README.txt +20 -172
- data/Rakefile.rb +5 -11
- data/init.rb +3 -3
- data/lib/{gilenson/gilenson_stub.rb → gilenson_stub.rb} +0 -6
- data/lib/integration/integration.rb +1 -1
- data/lib/integration/rails_date_helper_override.rb +4 -4
- data/lib/pluralizer.rb +101 -0
- data/lib/rudates.rb +85 -0
- data/lib/rutils.rb +13 -7
- data/lib/transliteration.rb +30 -0
- data/lib/version.rb +1 -1
- data/test/extras/integration_rails_filter.rb +1 -1
- data/test/extras/integration_rails_gilenson_helpers.rb +1 -1
- data/test/extras/integration_rails_helpers.rb +1 -1
- data/test/run_tests.rb +1 -1
- data/test/test_datetime.rb +16 -7
- data/test/test_integration.rb +1 -1
- data/test/test_integration_flag.rb +1 -1
- data/test/test_pluralize.rb +1 -1
- data/test/test_rutils_base.rb +1 -1
- data/test/test_transliteration.rb +1 -32
- metadata +45 -32
- data/bin/rutilize +0 -38
- data/lib/countries/countries.rb +0 -1773
- data/lib/datetime/datetime.rb +0 -83
- data/lib/pluralizer/pluralizer.rb +0 -288
- data/lib/transliteration/bidi.rb +0 -21
- data/lib/transliteration/simple.rb +0 -75
- data/lib/transliteration/transliteration.rb +0 -79
@@ -1,79 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
module RuTils
|
3
|
-
module Transliteration #:nodoc:
|
4
|
-
end
|
5
|
-
end
|
6
|
-
|
7
|
-
require File.join(File.dirname(__FILE__), 'simple')
|
8
|
-
|
9
|
-
# Заглушка
|
10
|
-
require File.join(File.dirname(__FILE__), 'bidi')
|
11
|
-
|
12
|
-
=begin
|
13
|
-
Реализует транслитерацию любого объекта, реализующего String или to_s.
|
14
|
-
=== Почему удален BiDi-транслит?
|
15
|
-
|
16
|
-
В отличие от DHH авторы RuTils придерживаются стратегии синтактической серной кислоты вместо синтактического уксуса. Основная область
|
17
|
-
применения bidi-транслитераций - генерация "как-бы" более удобочитаемых URL. К сожалению, у нее есть ряд свойств которые делают ее
|
18
|
-
бессмысленной (кроме как в качестве упражнения по строковым итераторам Ruby). Приводим список аргументов почему вам не нужны
|
19
|
-
автоматические транслитерированные URL:
|
20
|
-
|
21
|
-
* Они будут работать только для набора символов "ASCII + русский". Любая попытка засунуть в ваш URL слово stød закончится печально.
|
22
|
-
* Они будут работать только для русского языка, кириллиц много. Транслитерация по определению языкозависима.
|
23
|
-
* Вашим пользователям придется непрерывно угадывать, пишется буква "я". "Ja"? "Ya"? "J"? Если вы хоть раз наблюдали иностранца, пытающегося
|
24
|
-
выговорить "ОВИРскую" транслитерацию вашей фамилии из загранпаспорта, вы знаете о чем мы говорим.
|
25
|
-
* Приличные браузеры не кодируют русский текст в адресной строке если Ваш вебсервер его принял. Если браузер неприличный то он позволяет этот текст ввести.
|
26
|
-
Если браузер совсем неприличный, то средство ввода у него - стилус размером с зубочистку, а пользуются им в трамвае. Вводить ваш транслит
|
27
|
-
в таких условиях все равно никто не будет, успокойтесь.
|
28
|
-
|
29
|
-
Приводить список аргументов "почему такой транслит вам нужен" мы не будем дабы никого не травмировать.
|
30
|
-
|
31
|
-
Если вам таки страшно неймется реализовать транслит в URL, рекомендуем следующий подход:
|
32
|
-
|
33
|
-
* Для адресуемого обьекта сохраняется поле ++slug++
|
34
|
-
* При сохранении в это поле автоматически пишется "дирифицированное" название, но пользователь может его вручную отредактировать
|
35
|
-
* Дальнейшая адресация производится без "транслитерации обратно", по полю slug напрямую
|
36
|
-
|
37
|
-
Дополнительно рекомендуется запретить загрузку файлов с русскими именами (с помощью Javascript и свойства value элемента input).
|
38
|
-
=end
|
39
|
-
module RuTils::Transliteration::StringFormatting
|
40
|
-
|
41
|
-
# Транслитерирует строку в латиницу, и возвращает измененную строку
|
42
|
-
def translify
|
43
|
-
RuTils::Transliteration::Simple::translify(self.to_s)
|
44
|
-
end
|
45
|
-
|
46
|
-
# Транслитерирует строку, меняя объект
|
47
|
-
def translify!
|
48
|
-
self.replace(self.translify)
|
49
|
-
end
|
50
|
-
|
51
|
-
# Транслитерирует строку, делая ее пригодной для применения как имя директории или URL
|
52
|
-
def dirify
|
53
|
-
RuTils::Transliteration::Simple::dirify(self.to_s)
|
54
|
-
end
|
55
|
-
|
56
|
-
# ++DEPRECATED++ Вызывает ошибку
|
57
|
-
def bidi_translify(allow_slashes = true)
|
58
|
-
RuTils::Transliteration::BiDi.bail!
|
59
|
-
end
|
60
|
-
|
61
|
-
# ++DEPRECATED++ Вызывает ошибку
|
62
|
-
def bidi_translify!(allow_slashes = true)
|
63
|
-
RuTils::Transliteration::BiDi.bail!
|
64
|
-
end
|
65
|
-
|
66
|
-
# ++DEPRECATED++ Вызывает ошибку
|
67
|
-
def bidi_detranslify!(allow_slashes = true)
|
68
|
-
RuTils::Transliteration::BiDi.bail!
|
69
|
-
end
|
70
|
-
|
71
|
-
# ++DEPRECATED++ Вызывает ошибку
|
72
|
-
def bidi_detranslify(allow_slashes = true)
|
73
|
-
RuTils::Transliteration::BiDi.bail!
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
class Object::String
|
78
|
-
include RuTils::Transliteration::StringFormatting
|
79
|
-
end
|