st_tools 0.4.2 → 0.4.3

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 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: []