rutils 1.1.4 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
data/lib/rudates.rb
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
module RuTils
|
3
|
+
module RuDates
|
4
|
+
|
5
|
+
RU_MONTHNAMES = [nil] + %w{ январь февраль март апрель май июнь июль август сентябрь октябрь ноябрь декабрь }
|
6
|
+
RU_DAYNAMES = %w(воскресенье понедельник вторник среда четверг пятница суббота)
|
7
|
+
RU_ABBR_MONTHNAMES = [nil] + %w{ янв фев мар апр май июн июл авг сен окт ноя дек }
|
8
|
+
RU_ABBR_DAYNAMES = %w(вск пн вт ср чт пт сб)
|
9
|
+
RU_INFLECTED_MONTHNAMES = [nil] + %w{ января февраля марта апреля мая июня июля
|
10
|
+
августа сентября октября ноября декабря }
|
11
|
+
RU_DAYNAMES_E = [nil] + %w{первое второе третье четвёртое пятое шестое седьмое восьмое
|
12
|
+
девятое десятое одиннадцатое двенадцатое тринадцатое четырнадцатое пятнадцатое шестнадцатое
|
13
|
+
семнадцатое восемнадцатое девятнадцатое двадцатое двадцать тридцатое тридцатьпервое}
|
14
|
+
|
15
|
+
def self.distance_of_time_in_words(from_time, to_time = 0, include_seconds = false, absolute = false) #nodoc
|
16
|
+
from_time = from_time.to_time if from_time.respond_to?(:to_time)
|
17
|
+
to_time = to_time.to_time if to_time.respond_to?(:to_time)
|
18
|
+
distance_in_minutes = (((to_time - from_time).abs)/60).round
|
19
|
+
distance_in_seconds = ((to_time - from_time).abs).round
|
20
|
+
|
21
|
+
case distance_in_minutes
|
22
|
+
when 0..1
|
23
|
+
return (distance_in_minutes==0) ? 'меньше минуты' : '1 минуту' unless include_seconds
|
24
|
+
|
25
|
+
case distance_in_seconds
|
26
|
+
when 0..5 then 'менее 5 секунд'
|
27
|
+
when 6..10 then 'менее 10 секунд'
|
28
|
+
when 11..20 then 'менее 20 секунд'
|
29
|
+
when 21..40 then 'пол-минуты'
|
30
|
+
when 41..59 then 'меньше минуты'
|
31
|
+
else '1 минуту'
|
32
|
+
end
|
33
|
+
|
34
|
+
when 2..45 then distance_in_minutes.to_s +
|
35
|
+
" " + distance_in_minutes.items("минута", "минуты", "минут")
|
36
|
+
when 46..90 then 'около часа'
|
37
|
+
|
38
|
+
# исключение, сдвигаем на один влево чтобы соответствовать падежу
|
39
|
+
when 90..1440 then "около " + (distance_in_minutes.to_f / 60.0).round.to_s +
|
40
|
+
" " + (distance_in_minutes.to_f / 60.0).round.items("часа", 'часов', 'часов')
|
41
|
+
when 1441..2880 then '1 день'
|
42
|
+
else (distance_in_minutes / 1440).round.to_s +
|
43
|
+
" " + (distance_in_minutes / 1440).round.items("день", "дня", "дней")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.ru_strftime(time, format_str='%d.%m.%Y') #:yields: replaced time string
|
48
|
+
clean_fmt = format_str.to_s.gsub(/%{2}/, RuTils::SUBSTITUTION_MARKER).
|
49
|
+
gsub(/%a/, RU_ABBR_DAYNAMES[time.wday]).
|
50
|
+
gsub(/%A/, RU_DAYNAMES[time.wday]).
|
51
|
+
gsub(/%b/, RU_ABBR_MONTHNAMES[time.mon]).
|
52
|
+
gsub(/%d(\s)*%B/, '%02d' % time.day + '\1' + RU_INFLECTED_MONTHNAMES[time.mon]).
|
53
|
+
gsub(/%e(\s)*%B/, '%d' % time.day + '\1' + RU_INFLECTED_MONTHNAMES[time.mon]).
|
54
|
+
gsub(/%B/, RU_MONTHNAMES[time.mon]).
|
55
|
+
gsub(/#{RuTils::SUBSTITUTION_MARKER}/, '%%')
|
56
|
+
# Теперь когда все нужные нам маркеры заменены можно отдать это стандартному strftime
|
57
|
+
if block_given?
|
58
|
+
yield(clean_fmt)
|
59
|
+
else
|
60
|
+
time.strftime_norutils(clean_fmt)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
module RuStrftimeOverride
|
65
|
+
|
66
|
+
def self.included(into)
|
67
|
+
into.send(:alias_method, :strftime_norutils, :strftime)
|
68
|
+
into.class_eval do
|
69
|
+
def strftime(fmt)
|
70
|
+
if RuTils::overrides_enabled?
|
71
|
+
RuTils::RuDates.ru_strftime(self, fmt) do | fmt_with_replacements |
|
72
|
+
strftime_norutils(fmt_with_replacements)
|
73
|
+
end
|
74
|
+
else
|
75
|
+
strftime_norutils(fmt)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
[Time, Date].each{|k| k.send(:include, RuStrftimeOverride) }
|
84
|
+
end
|
85
|
+
end
|
data/lib/rutils.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
$KCODE = 'u' if RUBY_VERSION < '1.9.0'
|
3
3
|
|
4
|
-
require File.dirname(__FILE__) + '/version'
|
4
|
+
require File.expand_path(File.dirname(__FILE__)) + '/version'
|
5
5
|
|
6
6
|
# Главный контейнер модуля
|
7
7
|
module RuTils
|
@@ -36,12 +36,13 @@ module RuTils
|
|
36
36
|
#
|
37
37
|
# Флаг overrides в RuTils работают в контексте текущей нити
|
38
38
|
def overrides=(new_override_flag)
|
39
|
-
Thread.current[:
|
39
|
+
Thread.current[:rutils_overrides_enabled] = (new_override_flag ? true : false)
|
40
40
|
end
|
41
41
|
module_function :overrides=
|
42
42
|
|
43
43
|
def self.thread_local_or_own_flag #:nodoc:
|
44
|
-
|
44
|
+
# Это может быть умирает на 1.9.2
|
45
|
+
Thread.current[:rutils_overrides_enabled] || false
|
45
46
|
end
|
46
47
|
|
47
48
|
def self.load_component(name) #:nodoc:
|
@@ -49,12 +50,17 @@ module RuTils
|
|
49
50
|
end
|
50
51
|
end
|
51
52
|
|
52
|
-
|
53
|
-
|
54
|
-
|
53
|
+
require File.join(RuTils::INSTALLATION_DIRECTORY, "lib/pluralizer")
|
54
|
+
require File.join(RuTils::INSTALLATION_DIRECTORY, "lib/rudates")
|
55
|
+
require File.join(RuTils::INSTALLATION_DIRECTORY, "lib/transliteration")
|
55
56
|
|
56
57
|
# Заглушка для подключения типографа (он теперь в отдельном геме)
|
57
|
-
require File.join(RuTils::INSTALLATION_DIRECTORY, "lib/
|
58
|
+
require File.join(RuTils::INSTALLATION_DIRECTORY, "lib/gilenson_stub")
|
59
|
+
|
60
|
+
require "russian"
|
61
|
+
require "russian/transliteration"
|
62
|
+
require "gilenson"
|
63
|
+
require "ru_propisju"
|
58
64
|
|
59
65
|
# Оверлоады грузим только если константа не установлена в false
|
60
66
|
unless defined?(::RuTils::RUTILS_USE_DATE_HELPERS) && !::RuTils::RUTILS_USE_DATE_HELPERS
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# ++DEPRECATED++ - Реализует простейшую транслитерацию используя Russian
|
3
|
+
require "ru_translify"
|
4
|
+
|
5
|
+
module RuTils::TransliterationStub
|
6
|
+
|
7
|
+
# Транслитерирует строку в латиницу, и возвращает измененную строку
|
8
|
+
def translify
|
9
|
+
Russian.transliterate(self)
|
10
|
+
end
|
11
|
+
|
12
|
+
# Транслитерирует строку, меняя объект
|
13
|
+
def translify!
|
14
|
+
self.replace(Russian.transliterate(self))
|
15
|
+
end
|
16
|
+
|
17
|
+
# Транслитерирует строку, делая ее пригодной для применения как имя директории или URL
|
18
|
+
def dirify
|
19
|
+
st = translify
|
20
|
+
st.gsub!(/(\s\&\s)|(\s\&\;\s)/, ' and ') # convert & to "and"
|
21
|
+
st.gsub!(/\W/, ' ') #replace non-chars
|
22
|
+
st.gsub!(/(_)$/, '') #trailing underscores
|
23
|
+
st.gsub!(/^(_)/, '') #leading unders
|
24
|
+
st.strip.gsub(/(\s)/,'-').downcase.squeeze('-')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class ::Object::String
|
29
|
+
include RuTils::TransliterationStub
|
30
|
+
end
|
data/lib/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
require 'action_controller'
|
3
3
|
require 'action_controller/test_process'
|
4
|
-
require File.dirname(__FILE__) + '/../../init.rb'
|
4
|
+
require File.expand_path(File.dirname(__FILE__)) + '/../../init.rb'
|
5
5
|
|
6
6
|
ActionController::Routing::Routes.draw { |map| map.connect ':controller/:action/:id' }
|
7
7
|
|
@@ -4,7 +4,7 @@ require 'action_controller'
|
|
4
4
|
require 'action_view'
|
5
5
|
|
6
6
|
require 'action_controller/test_process'
|
7
|
-
require File.dirname(__FILE__) + '/../../init.rb'
|
7
|
+
require File.expand_path(File.dirname(__FILE__)) + '/../../init.rb'
|
8
8
|
|
9
9
|
# Перегрузка helper'ов Rails
|
10
10
|
rails_test_class = defined?(ActionController::TestCase) ? ActionController::TestCase : Test::Unit::TestCase
|
@@ -4,7 +4,7 @@ require "ostruct"
|
|
4
4
|
require 'action_controller'
|
5
5
|
require 'action_view'
|
6
6
|
require 'action_controller/test_process'
|
7
|
-
require File.dirname(__FILE__) + '/../../init.rb'
|
7
|
+
require File.expand_path(File.dirname(__FILE__)) + '/../../init.rb'
|
8
8
|
require 'action_pack/version'
|
9
9
|
|
10
10
|
ma, mi, ti = ActionPack::VERSION::MAJOR, ActionPack::VERSION::MINOR, ActionPack::VERSION::TINY
|
data/test/run_tests.rb
CHANGED
data/test/test_datetime.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
require "rubygems"
|
2
3
|
$KCODE = 'u' if RUBY_VERSION < '1.9.0'
|
3
4
|
require 'test/unit'
|
4
|
-
require File.dirname(__FILE__) + '/../lib/rutils'
|
5
|
+
require File.expand_path(File.dirname(__FILE__)) + '/../lib/rutils'
|
5
6
|
|
6
7
|
class DistanceOfTimeTest < Test::Unit::TestCase
|
7
8
|
def test_distance_of_time_in_words
|
@@ -13,15 +14,23 @@ class DistanceOfTimeTest < Test::Unit::TestCase
|
|
13
14
|
end
|
14
15
|
|
15
16
|
def assert_format_eq(str, *from_and_distance)
|
16
|
-
assert_equal str, RuTils::
|
17
|
+
assert_equal str, RuTils::RuDates.distance_of_time_in_words(*from_and_distance)
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
20
21
|
class StrftimeRuTest < Test::Unit::TestCase
|
22
|
+
|
23
|
+
def test_to_datetime_does_not_recurse_indefinitely
|
24
|
+
assert_nothing_raised do
|
25
|
+
t = Time.local(2,1,1,1)
|
26
|
+
s = t.send(:to_datetime).strftime("%a, %A, %b, %B")
|
27
|
+
assert_equal "Tue, Tuesday, Jan, January", s
|
28
|
+
end
|
29
|
+
end
|
21
30
|
|
22
31
|
def test_a_formatter_should_actually_return
|
23
32
|
the_fmt = "Это случилось %d %B"
|
24
|
-
assert_equal "Это случилось 01 декабря", RuTils::
|
33
|
+
assert_equal "Это случилось 01 декабря", RuTils::RuDates::ru_strftime(Time.local(1985, "dec", 01), the_fmt)
|
25
34
|
end
|
26
35
|
|
27
36
|
def test_should_not_touch_double_marks
|
@@ -62,7 +71,7 @@ class StrftimeRuTest < Test::Unit::TestCase
|
|
62
71
|
|
63
72
|
def test_shorthands_defined
|
64
73
|
date = Date.new(2005, 12, 31)
|
65
|
-
assert_equal "дек декабрь сб суббота", "#{
|
74
|
+
assert_equal "дек декабрь сб суббота", "#{RuTils::RuDates::RU_ABBR_MONTHNAMES[date.mon]} #{RuTils::RuDates::RU_MONTHNAMES[date.mon]} #{RuTils::RuDates::RU_ABBR_DAYNAMES[date.wday]} #{RuTils::RuDates::RU_DAYNAMES[date.wday]}"
|
66
75
|
|
67
76
|
date = Date.new(2005, 11, 9)
|
68
77
|
assert_equal "Nov November Wed Wednesday", "#{Date::ABBR_MONTHNAMES[date.mon]} #{Date::MONTHNAMES[date.mon]} #{Date::ABBR_DAYNAMES[date.wday]} #{Date::DAYNAMES[date.wday]}"
|
@@ -73,7 +82,7 @@ class StrftimeRuTest < Test::Unit::TestCase
|
|
73
82
|
|
74
83
|
def test_formatter_should_not_mutate_passed_format_strings
|
75
84
|
the_fmt, backup = "Это случилось %d %B", "Это случилось %d %B"
|
76
|
-
assert_equal "Это случилось 01 декабря", RuTils::
|
85
|
+
assert_equal "Это случилось 01 декабря", RuTils::RuDates::ru_strftime(Time.local(1985, "dec", 01), the_fmt)
|
77
86
|
assert_equal the_fmt, backup
|
78
87
|
end
|
79
88
|
|
@@ -85,7 +94,7 @@ class StrftimeRuTest < Test::Unit::TestCase
|
|
85
94
|
end
|
86
95
|
|
87
96
|
def assert_format_eq(str, time_or_date, fmt, msg = 'Should format as desired')
|
88
|
-
r = RuTils::
|
97
|
+
r = RuTils::RuDates::ru_strftime(time_or_date, fmt)
|
89
98
|
assert_not_nil r, "The formatter should have returned a not-nil value for #{time_or_date} and #{fmt}"
|
90
99
|
assert_kind_of String, "The formatter should have returned a String for #{time_or_date} and #{fmt}"
|
91
100
|
assert_equal str, r, msg
|
@@ -129,7 +138,7 @@ class StrftimeTest < Test::Unit::TestCase
|
|
129
138
|
end
|
130
139
|
|
131
140
|
ensure
|
132
|
-
|
141
|
+
a.join; b.join
|
133
142
|
end
|
134
143
|
|
135
144
|
def with_overrides_set_to(value, &blk)
|
data/test/test_integration.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
$KCODE = 'u' if RUBY_VERSION < '1.9.0'
|
3
3
|
require 'test/unit'
|
4
4
|
|
5
|
-
require File.dirname(__FILE__) + '/../lib/rutils'
|
5
|
+
require File.expand_path(File.dirname(__FILE__)) + '/../lib/rutils'
|
6
6
|
|
7
7
|
# Load all the prereqs
|
8
8
|
integration_tests = ['rubygems', 'multi_rails_init'] + Dir.glob(File.dirname(__FILE__) + '/extras/integration_*.rb')
|
data/test/test_pluralize.rb
CHANGED
data/test/test_rutils_base.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
$KCODE = 'u' if RUBY_VERSION < '1.9.0'
|
3
3
|
require 'test/unit'
|
4
|
-
require File.dirname(__FILE__) + '/../lib/rutils'
|
4
|
+
require File.expand_path(File.dirname(__FILE__)) + '/../lib/rutils'
|
5
5
|
|
6
6
|
class RutilsBaseTest < Test::Unit::TestCase
|
7
7
|
def test_rutils_location
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
$KCODE = 'u' if RUBY_VERSION < '1.9.0'
|
3
3
|
require 'test/unit'
|
4
|
-
require File.dirname(__FILE__) + '/../lib/rutils'
|
4
|
+
require File.expand_path(File.dirname(__FILE__)) + '/../lib/rutils'
|
5
5
|
|
6
6
|
|
7
7
|
class TranslitTest < Test::Unit::TestCase
|
@@ -11,43 +11,12 @@ class TranslitTest < Test::Unit::TestCase
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_translify
|
14
|
-
assert_equal "sch", 'щ'.translify
|
15
|
-
assert_equal "stansyi", "стансы".translify
|
16
|
-
assert_equal "upuschenie", 'упущение'.translify
|
17
|
-
assert_equal "sh", 'ш'.translify
|
18
|
-
assert_equal "SH", 'Ш'.translify
|
19
|
-
assert_equal "ts", 'ц'.translify
|
20
14
|
assert_equal "Eto kusok stroki russkih bukv v peremeshku s latinizey i ampersandom (pozor!) & something", @string.translify
|
21
|
-
assert_equal "Это просто некий текст".translify, "Eto prosto nekiy tekst"
|
22
|
-
|
23
|
-
assert_equal "NEVEROYATNOE UPUSCHENIE", 'НЕВЕРОЯТНОЕ УПУЩЕНИЕ'.translify
|
24
|
-
assert_equal "Neveroyatnoe Upuschenie", 'Невероятное Упущение'.translify
|
25
|
-
assert_equal "Sherstyanoy Zayats", 'Шерстяной Заяц'.translify
|
26
|
-
assert_equal "N.P. Sherstyakov", 'Н.П. Шерстяков'.translify
|
27
|
-
assert_equal "SHAROVARYI", 'ШАРОВАРЫ'.translify
|
28
15
|
end
|
29
16
|
|
30
|
-
# def test_detranslify
|
31
|
-
# puts "Шерстяной негодяй"
|
32
|
-
# assert_equal "щ", "sch".detranslify
|
33
|
-
# assert_equal "Щ", "SCH".detranslify
|
34
|
-
# assert_equal "Щ", "Sch".detranslify
|
35
|
-
# assert_equal "Щукин", "Schukin".detranslify
|
36
|
-
# assert_equal "Шерстяной негодяй", "Scherstyanoy negodyay".detranslify
|
37
|
-
# end
|
38
|
-
|
39
17
|
def test_dirify
|
40
18
|
assert_equal "eto-kusok-stroki-russkih-bukv-v-peremeshku-s-latinizey-i-ampersandom-pozor-and-something", @string.dirify
|
41
19
|
assert_equal "esche-russkiy-tekst", "Еще РусСКий теКст".dirify
|
42
20
|
assert_equal "kooperator-poobedal-offlayn", "кооператор пообедал оффлайн".dirify, "dirify не должен съедать парные буквы"
|
43
21
|
end
|
44
|
-
end
|
45
|
-
|
46
|
-
|
47
|
-
class BiDiTranslitTest < Test::Unit::TestCase
|
48
|
-
|
49
|
-
def test_bidi_translify_raises_unsupported
|
50
|
-
assert_raise(RuTils::RemovedFeature) { "xxx".bidi_translify }
|
51
|
-
assert_raise(RuTils::RemovedFeature) { "xxx".bidi_detranslify }
|
52
|
-
end
|
53
22
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rutils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 15
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
|
-
-
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version:
|
7
|
+
- 2
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 2.0.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Julian 'Julik' Tarkhanov
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date:
|
20
|
+
date: 2011-04-02 00:00:00 +02:00
|
21
21
|
default_executable:
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
@@ -37,43 +37,59 @@ dependencies:
|
|
37
37
|
type: :runtime
|
38
38
|
version_requirements: *id001
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
|
-
name:
|
40
|
+
name: russian
|
41
41
|
prerelease: false
|
42
42
|
requirement: &id002 !ruby/object:Gem::Requirement
|
43
43
|
none: false
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
hash:
|
47
|
+
hash: 25
|
48
48
|
segments:
|
49
|
-
- 2
|
50
49
|
- 0
|
51
|
-
-
|
52
|
-
|
53
|
-
|
50
|
+
- 2
|
51
|
+
- 7
|
52
|
+
version: 0.2.7
|
53
|
+
type: :runtime
|
54
54
|
version_requirements: *id002
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: ru_propisju
|
57
57
|
prerelease: false
|
58
58
|
requirement: &id003 !ruby/object:Gem::Requirement
|
59
59
|
none: false
|
60
60
|
requirements:
|
61
61
|
- - ">="
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
hash:
|
63
|
+
hash: 23
|
64
|
+
segments:
|
65
|
+
- 1
|
66
|
+
- 0
|
67
|
+
- 0
|
68
|
+
version: 1.0.0
|
69
|
+
type: :runtime
|
70
|
+
version_requirements: *id003
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: hoe
|
73
|
+
prerelease: false
|
74
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
hash: 41
|
64
80
|
segments:
|
65
81
|
- 2
|
66
|
-
-
|
82
|
+
- 9
|
67
83
|
- 1
|
68
|
-
version: 2.
|
84
|
+
version: 2.9.1
|
69
85
|
type: :development
|
70
|
-
version_requirements: *
|
71
|
-
description:
|
86
|
+
version_requirements: *id004
|
87
|
+
description: DEPRECATED processing of russian strings
|
72
88
|
email:
|
73
89
|
- me@julik.nl
|
74
90
|
- yaroslav@markin.net
|
75
|
-
executables:
|
76
|
-
|
91
|
+
executables: []
|
92
|
+
|
77
93
|
extensions: []
|
78
94
|
|
79
95
|
extra_rdoc_files:
|
@@ -89,19 +105,15 @@ files:
|
|
89
105
|
- README.txt
|
90
106
|
- Rakefile.rb
|
91
107
|
- TODO.txt
|
92
|
-
- bin/rutilize
|
93
108
|
- init.rb
|
94
|
-
- lib/
|
95
|
-
- lib/datetime/datetime.rb
|
96
|
-
- lib/gilenson/gilenson_stub.rb
|
109
|
+
- lib/gilenson_stub.rb
|
97
110
|
- lib/integration/integration.rb
|
98
111
|
- lib/integration/rails_date_helper_override.rb
|
99
112
|
- lib/integration/rails_pre_filter.rb
|
100
|
-
- lib/pluralizer
|
113
|
+
- lib/pluralizer.rb
|
114
|
+
- lib/rudates.rb
|
101
115
|
- lib/rutils.rb
|
102
|
-
- lib/transliteration
|
103
|
-
- lib/transliteration/simple.rb
|
104
|
-
- lib/transliteration/transliteration.rb
|
116
|
+
- lib/transliteration.rb
|
105
117
|
- lib/version.rb
|
106
118
|
- test/extras/integration_rails_filter.rb
|
107
119
|
- test/extras/integration_rails_gilenson_helpers.rb
|
@@ -113,8 +125,9 @@ files:
|
|
113
125
|
- test/test_pluralize.rb
|
114
126
|
- test/test_rutils_base.rb
|
115
127
|
- test/test_transliteration.rb
|
128
|
+
- .gemtest
|
116
129
|
has_rdoc: true
|
117
|
-
homepage: http://rutils
|
130
|
+
homepage: http://github.com/julik/rutils
|
118
131
|
licenses: []
|
119
132
|
|
120
133
|
post_install_message:
|
@@ -147,10 +160,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
147
160
|
requirements: []
|
148
161
|
|
149
162
|
rubyforge_project: rutils
|
150
|
-
rubygems_version: 1.
|
163
|
+
rubygems_version: 1.4.1
|
151
164
|
signing_key:
|
152
165
|
specification_version: 3
|
153
|
-
summary:
|
166
|
+
summary: DEPRECATED processing of russian strings
|
154
167
|
test_files:
|
155
168
|
- test/test_datetime.rb
|
156
169
|
- test/test_integration.rb
|