st_tools 0.3.5 → 0.3.6

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
2
  SHA1:
3
- metadata.gz: 6d2662c1a06d73922fabd749d9526d853b7c8ae5
4
- data.tar.gz: cfc47d401aa0bbdfce4ffff5042820795b38b18f
3
+ metadata.gz: 4dedf4fc8ccd753d54214b62ff8438fb370da178
4
+ data.tar.gz: 697d2055b03e5e4c044ad6edd4066336199eaeb9
5
5
  SHA512:
6
- metadata.gz: c865a7df12ce6b060cec21ec1ca6de7685790857813ef66aee19f8bdb6b07ae4db56c4f2fd25618e514b15cdf22b23b9d06cd24d5fb437e5d4c7f237be1b4c34
7
- data.tar.gz: c1adba89cd3f957f456dd55327e26bbdabcb0f98237f93e423740051ce0dce9937ba519d4a0b03388eb1fa45589a9591ba01cec493cbfab294abcf55815cdcb0
6
+ metadata.gz: c823535f25da3a3b8c278684c1bea45ebfcdfe37db55395a2e462edb3ee446c5d3c03b99f85d546414d4f350a2cc3ef239237636f402a1b359a8822c3322fcf9
7
+ data.tar.gz: 6a8b3d1c4c5479dcd2b6c9501d99adb9a193777fe2e307e3e5d031bced63822b28e08fcf7680da783b9ac1c050c84cafcc65687999bc6c17986381373a04ee39
data/README.md CHANGED
@@ -161,6 +161,14 @@ StTools::String.normalize(' Москва ') # => "москва"
161
161
 
162
162
  ```ruby
163
163
  StTools::String.caps('санКТ-петерБург') # => "Санкт-Петербург"
164
+ StTools::String.caps('1-Я владимирская') # => "1-я Владимирская"
165
+ StTools::String.caps('stan.zhuravlev@mail.ru') # => "Stan.Zhuravlev@mail.Ru"
166
+ StTools::String.caps('а.с. ПУШКИН') # => "А.С. Пушкин"
167
+ StTools::String.caps('ivan_petrov') # => "Ivan_Petrov"
168
+ StTools::String.caps('н.а.римский-корсаков') # => "Н.А.Римский-Корсаков"
169
+
170
+ StTools::String.caps('н.а.римский-корсаков пришел в гости к в.и. ленину на улицу героев 1812-го года')
171
+ #=> "Н.А.Римский-Корсаков Пришел В Гости К В.И. Ленину На Улицу Героев 1812-го Года"
164
172
  ```
165
173
 
166
174
  Для реализации деморежимов различных приложений иногда надо скрыть реальный результат.
data/lib/st_tools.rb CHANGED
@@ -1,12 +1,12 @@
1
- # $LOAD_PATH.unshift File.join(__dir__, *%w[.. lib])
1
+ $LOAD_PATH.unshift File.join(__dir__, *%w[.. lib])
2
2
 
3
- require "#{__dir__}/st_tools/version"
3
+ require "st_tools/version"
4
4
 
5
5
  require 'ruby-progressbar'
6
6
  require 'yaml'
7
7
 
8
8
  module StTools
9
- require "#{__dir__}/st_tools/common"
9
+ require "st_tools/common"
10
10
  require 'st_tools/system'
11
11
  require 'st_tools/human'
12
12
  require 'st_tools/fias'
@@ -169,12 +169,10 @@ module StTools
169
169
  # StTools::String.caps("саНКТ-петеРБург") #=> "Санкт-Петербург"
170
170
  def self.caps(text)
171
171
  return nil if text.nil?
172
- str = self.downcase(text).split(/[\-\s]/).map { |x| self.upcase(x[0]) + x[1,x.length] }
173
- str = str.join(' ')
174
- for i in 0..str.length
175
- str[i] = '-' if (text.to_s[i,1] == '-')
172
+ str = self.downcase(text)
173
+ str.gsub!(/(^[а-яa-z]|[а-яa-z\s]-[а-яa-z]|[\.\s\_][а-яa-z])/) do |part|
174
+ part.gsub(/.\b$/) { |x| self.upcase(x) }
176
175
  end
177
-
178
176
  return str
179
177
  rescue
180
178
  return text
@@ -33,8 +33,9 @@ module StTools
33
33
  lines.each do |one|
34
34
  res = one unless one.match(/grep/)
35
35
  end
36
- res = res.split(' ').last
37
- File.basename(res)
36
+ res = res.split(/\d{1,2}\:\d{1,2}\.\d{0,100}/).last
37
+ res = File.basename(res)
38
+ res.split(' ').first
38
39
  end
39
40
 
40
41
  end
@@ -1,3 +1,3 @@
1
1
  module StTools
2
- VERSION = '0.3.5'
2
+ VERSION = '0.3.6'
3
3
  end
@@ -0,0 +1,25 @@
1
+ require 'rspec'
2
+ require 'st_tools'
3
+
4
+ describe 'Проверка методов StTools::String.caps' do
5
+
6
+ class String
7
+ include ::StTools::Module::String
8
+ end
9
+
10
+ test = Hash.new
11
+ test['stan.zhuravlev'] = 'Stan.Zhuravlev'
12
+ test['н.а.римский-корсаков'] = 'Н.А.Римский-Корсаков'
13
+ test['а.с. ПУШКИН'] = 'А.С. Пушкин'
14
+ test['1-я владимирская улица'] = '1-я Владимирская Улица'
15
+ test['ivan_petrov'] = 'Ivan_Petrov'
16
+
17
+
18
+ test.each do |input, result|
19
+ it input do
20
+ test = ::StTools::String.caps(input)
21
+ expect(test).to eq(result)
22
+ end
23
+ end
24
+
25
+ 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.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stan Zhuravlev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-05-03 00:00:00.000000000 Z
11
+ date: 2015-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -100,6 +100,7 @@ files:
100
100
  - test/fias_lib_spec.rb
101
101
  - test/human_lib_spec.rb
102
102
  - test/progress_bar_lib_spec.rb
103
+ - test/string_caps_lib_spec.rb
103
104
  - test/string_lib_spec.rb
104
105
  - test/system_lib_spec.rb
105
106
  homepage: https://github.com/StanZhuravlev/st_tools