st_tools 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: af5b3cd1844a4c31ef0e085209a75fe4eab3c38b
4
- data.tar.gz: 30fa73cde8b2000f15d66baa4a0fe09eda0eaeba
2
+ SHA256:
3
+ metadata.gz: 1b21d03339518239f79ea96ff3c5260a8a71b88f8129aa322082d3c76175b95f
4
+ data.tar.gz: 4116ad80bda1ff6ea259df241145c08a1f1bfaa0d0b2003345a6e357d318c327
5
5
  SHA512:
6
- metadata.gz: 87852b8580b4a51b19c35fae7b859275109f50eb946a0df47858dcdb8c439a3544149467a6c507df8478ee5b7422628b90188ef89540f6aa828c7d3c58c3bdea
7
- data.tar.gz: 2bbacbc891971a5d090de866b75514de6b906bbe475a13f99342921bc1e9bc939d654d7efb525a0a369e0cd367957ddacd667479eeca212e8c0ed8b027df121f
6
+ metadata.gz: 05da249760de15e0b488f62c6d7dd827088a5080f928e3b2a78f7143f17f774aa78c442b855431b8f0392d556a0e78547aec7346d86c7d28b71eee60b2db3a22
7
+ data.tar.gz: e7742ea8f2710fe955652e697352ea3d912ec7ed0f29409e8e60225e3bc891ead2a87aa4f62b47fea83c94973601b9bbdc16dbf6d97ed43a90bbbcb948d813f4
@@ -13,12 +13,13 @@ module StTools
13
13
  translited = translited.tr('АБВГДЕЁЗИЙКЛМНОПРСТУФХЭЫЬ', 'ABVGDEEZIJKLMNOPRSTUFHEY\'\'')
14
14
 
15
15
  translited = translited.gsub(/[жцчшщъюяЖЦЧШЩЪЮЯ]/, 'ж' => 'zh', 'ц' => 'ts', 'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sch',
16
- 'ъ' => '', 'ю' => 'ju', 'я' => 'ja',
17
- 'Ж' => 'Zh', 'Ц' => 'Ts', 'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sch',
18
- 'Ъ' => '', 'Ю' => 'Ju', 'Я' => 'Ja')
16
+ 'ъ' => '', 'ю' => 'ju', 'я' => 'ja',
17
+ 'Ж' => 'Zh', 'Ц' => 'Ts', 'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sch',
18
+ 'Ъ' => '', 'Ю' => 'Ju', 'Я' => 'Ja')
19
19
  translited.gsub('\'', '')
20
20
  end
21
21
 
22
+
22
23
  # Метод преобразует строку в нижний регистр с одновременной заменой буквы 'ё' на 'е'.
23
24
  # Метод имеет примерно в два раза более высокую производительности по сравнению с традиционным .mb_chars.downcase.to_s,
24
25
  # но имеет ограничение - работа только с русскими и английскими строками
@@ -29,16 +30,13 @@ module StTools
29
30
  # StTools::String.downcase("Hello, Вася!") #=> "hello, вася!"
30
31
  def self.downcase(text)
31
32
  if text
32
- if RUBY_VERSION < "2.4"
33
- return text.tr('QWERTYUIOPASDFGHJKLZXCVBNMАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ',
34
- 'qwertyuiopasdfghjklzxcvbnmабвгдеежзийклмнопрстуфхцчшщъыьэюя')
35
- else
36
- return text.downcase
37
- end
33
+ return text.tr('QWERTYUIOPASDFGHJKLZXCVBNMАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ',
34
+ 'qwertyuiopasdfghjklzxcvbnmабвгдеежзийклмнопрстуфхцчшщъыьэюя')
38
35
  end
39
36
  ""
40
37
  end
41
38
 
39
+
42
40
  # Метод преобразует строку в верхний регистр с одновременной заменой буквы 'Ё' на 'Е'.
43
41
  # Метод имеет примерно в два раза более высокую производительности по сравнению с традиционным .mb_chars.downcase.to_s,
44
42
  # но имеет ограничение - работа только с русскими и английскими строками
@@ -49,16 +47,13 @@ module StTools
49
47
  # StTools::String.upcase("Hello, Вася!") #=> "HELLO, ВАСЯ!"
50
48
  def self.upcase(text)
51
49
  if text
52
- if RUBY_VERSION < "2.4"
53
- return text.tr('qwertyuiopasdfghjklzxcvbnmабвгдеёжзийклмнопрстуфхцчшщъыьэюя',
54
- 'QWERTYUIOPASDFGHJKLZXCVBNMАБВГДЕЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ')
55
- else
56
- return text.upcase
57
- end
50
+ return text.tr('qwertyuiopasdfghjklzxcvbnmабвгдеёжзийклмнопрстуфхцчшщъыьэюя',
51
+ 'QWERTYUIOPASDFGHJKLZXCVBNMАБВГДЕЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ')
58
52
  end
59
53
  ""
60
54
  end
61
55
 
56
+
62
57
  # Метод заменяет в исходной строке английские символы, похожие
63
58
  # на русские - на соответстующие русские символы. То есть это похоже на ситуацию,
64
59
  # когда Google меняет слово, случайно написанное английскими буквами - на русское слово. Одновременно
@@ -71,6 +66,7 @@ module StTools
71
66
  text.tr('ёЁEeHCcTOoPpAHKXxBM', 'еЕЕеНСсТОоРрАНКХхВМ')
72
67
  end
73
68
 
69
+
74
70
  # Метод проводит нормализацию строки для последующей машиной обработки. При этом осуществляется:
75
71
  # - убирается букву 'ё'
76
72
  # - перевод строку в нижний регистр
@@ -91,6 +87,7 @@ module StTools
91
87
  self.downcase(out).strip.gsub(/[\s\t\u00A0]{1,100}/, ' ')
92
88
  end
93
89
 
90
+
94
91
  # Метод позволяет показывать клиенту строку в неполном объеме, с закрытием части символов в строке звездочкой.
95
92
  # При этом число звездочек в строке определеяется ее длиной. Чем строка дилинее - тем больше в ней звездочек.
96
93
  #
@@ -104,13 +101,14 @@ module StTools
104
101
  def self.hide(text)
105
102
  return nil if text.nil?
106
103
  len = text.length - 3
107
- 0.upto((len/4).to_i) do
108
- pos = rand(len)
104
+ 0.upto((len / 4).to_i) do
105
+ pos = rand(len)
109
106
  text[pos, 1] = '*'
110
107
  end
111
108
  return text
112
109
  end
113
110
 
111
+
114
112
  # Метод аналогичен обычной функции split, однако дополнительно может выполнять следующие действия:
115
113
  # - strip каждого элемента
116
114
  # - normalize соответсвующей функцией (#normalize)
@@ -142,6 +140,7 @@ module StTools
142
140
  return []
143
141
  end
144
142
 
143
+
145
144
  # Метод возвращает полный массив Array [1, 4, 5, 6, 7, 456] для строк вида '1, 4, 5-7, 456'.
146
145
  # Дополнительно осуществляется:
147
146
  # - сортировка в прямом порядке
@@ -163,7 +162,7 @@ module StTools
163
162
  tmp = self.split(text, ',')
164
163
  tmp.each do |one|
165
164
  if one.match(/\-/)
166
- d = one.split(/\-/)
165
+ d = one.split(/\-/)
167
166
  out += Range.new(d.first.to_i, d.last.to_i).to_a
168
167
  else
169
168
  out << one.to_i
@@ -176,6 +175,7 @@ module StTools
176
175
  return out
177
176
  end
178
177
 
178
+
179
179
  # Метод делает заглавной первую букву в словах, разделенных пробелами или дефисом.
180
180
  #
181
181
  # @param [String] text исходная строка
@@ -193,6 +193,7 @@ module StTools
193
193
  return text
194
194
  end
195
195
 
196
+
196
197
  # Метод конвертирует строку в тип boolean
197
198
  #
198
199
  # @param [String] text исходная строка, содержащая 'true/false', 'on/off', '1/0'
@@ -221,6 +222,7 @@ module StTools
221
222
  false
222
223
  end
223
224
 
225
+
224
226
  # Метод преобразует список Array в строку перечисление вида "это, это и это". Метод позволяет
225
227
  # делать перечсиелние на разных языках, использовать частицы 'и' и 'или', а также оформлять
226
228
  # список тегами HTML.
@@ -240,9 +242,9 @@ module StTools
240
242
  def self.pretty_list(items, separator: ',', union: :and, pretag: '', afttag: '')
241
243
  return '' if items.nil? || items.empty?
242
244
  return "#{pretag}#{items.first}#{afttag}" if items.count == 1
243
- out = Array.new
245
+ out = Array.new
244
246
  last = items.last
245
- arr = items[0, items.count-1]
247
+ arr = items[0, items.count - 1]
246
248
  arr.each do |one|
247
249
  out << "#{pretag}#{one}#{afttag}"
248
250
  out << separator + ' '
@@ -258,6 +260,7 @@ module StTools
258
260
  out.join
259
261
  end
260
262
 
263
+
261
264
  # Метод обрезает строку и добавляет в случае обрезания строки многоточие
262
265
  #
263
266
  # @param [Object] text строка для обрезания
@@ -281,6 +284,7 @@ module StTools
281
284
  out.strip + endwith
282
285
  end
283
286
 
287
+
284
288
  # Метод преобразует строковое выражение в число с плавающей запятой. При этом метод корректно преобразует
285
289
  # числа вида "12.34" и "12,34", то есть с точкой и запятой (но будет некорректный результат в случае
286
290
  # американских чисел, где запятая - разделитель тысяч, а не дробная часть).
@@ -1,3 +1,3 @@
1
1
  module StTools
2
- VERSION = '0.4.2'
2
+ VERSION = '0.4.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: st_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stan Zhuravlev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-04 00:00:00.000000000 Z
11
+ date: 2019-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -128,9 +128,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
128
  - !ruby/object:Gem::Version
129
129
  version: '0'
130
130
  requirements: []
131
- rubyforge_project:
132
- rubygems_version: 2.4.5
131
+ rubygems_version: 3.0.1
133
132
  signing_key:
134
133
  specification_version: 4
135
- summary: "Методы общего назначения"
134
+ summary: Методы общего назначения
136
135
  test_files: []