unicode-tools 1.0.1 → 2.0.1

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: 4e05d62c46b9719b21c9948d09839218ae0b987c
4
- data.tar.gz: efd5a84c44ed55899af1fbaaf7977abfdf439c24
2
+ SHA256:
3
+ metadata.gz: c08b3dc01afdfbd5bf38236447e5eb7bf4d086cec5cbad6e9ee40b1b73a82376
4
+ data.tar.gz: 2499c14f2049b94d4abb1412757bf07b0f55983ba242d81aa6e312ab83a9c08f
5
5
  SHA512:
6
- metadata.gz: 8ee83292371cf5d714ab80f3617842d105d5a167d92848fd686dde2f91e7753bbcfef0d355aa0f2f7eeafd1a23f32c93ea62a95ae649c4fedd0ce0535e765762
7
- data.tar.gz: 6be9d74ba8b3decd9cd131c4cdd504d925ade86071b48b891ef1e51d799276d63c593fac0b48d67b4fb590a1b00e8ca4b9005a16ec38b71e425c32d4b0ffd877
6
+ metadata.gz: cc29401458ae81d268aa4bbe8f10b84b5850a83687bc7e603fba0932b785024990e928e490810f826c58ac0e7063c17ebabaddbc940c121abd13c4e1d8231175
7
+ data.tar.gz: f5c75816773610a6a74b400ce9147959efc5f55a65648cb82de558a34459f0fa7561afaf60baafb6d7960ce59d3d2c1b2c8d9640dff3269dc1d1aeafdad261f9
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.7.1
data/README.md CHANGED
@@ -1,4 +1,7 @@
1
+ # Unicode-friendly String#trim and String#squish
2
+
1
3
  ## Gemfile
4
+
2
5
  ```ruby
3
- gem 'unicode-tools', '~> 1.0'
6
+ gem 'unicode-tools', '~> 2.0.0'
4
7
  ```
data/Rakefile CHANGED
@@ -7,4 +7,4 @@ require 'bundler/gem_tasks'
7
7
  Rake::TestTask.new { |t| t.libs << 'test' }
8
8
 
9
9
  desc 'Run test suite'
10
- task :default => :test
10
+ task default: :test
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ module UnicodeTools
5
+ module ActiveRecordExtension
6
+ module Squish
7
+ def squish(*attributes)
8
+ extension = Module.new
9
+
10
+ attributes.each do |attribute|
11
+ extension.class_eval <<-RUBY, __FILE__, __LINE__ + 1
12
+ def #{attribute}=(value)
13
+ super(String === value ? value.squish.presence : value)
14
+ end
15
+ RUBY
16
+ end
17
+
18
+ include extension
19
+
20
+ nil
21
+ end
22
+ end
23
+ end
24
+ end
@@ -2,19 +2,19 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module UnicodeTools
5
- BIDI_OVERRIDE_CHARS_REGEX = /\u00E2\u0080[\u008E\u008F\u00AA-\u00AE]/.freeze
5
+ BIDI_OVERRIDE_CHARACTERS_REGEXP = /\u00E2\u0080[\u008E\u008F\u00AA-\u00AE]/.freeze
6
6
 
7
7
  class << self
8
8
  def has_bidi_override?(string)
9
- !!(string =~ BIDI_OVERRIDE_CHARS_REGEX)
9
+ !!(string =~ BIDI_OVERRIDE_CHARACTERS_REGEXP)
10
10
  end
11
11
 
12
- def strip_bidi_override_chars(string)
13
- string.gsub(BIDI_OVERRIDE_CHARS_REGEX, '')
12
+ def strip_bidi_override_characters(string)
13
+ string.gsub(BIDI_OVERRIDE_CHARACTERS_REGEXP, '')
14
14
  end
15
15
 
16
- def strip_bidi_override_chars!(string)
17
- string.gsub!(BIDI_OVERRIDE_CHARS_REGEX, '')
16
+ def strip_bidi_override_characters!(string)
17
+ string.gsub!(BIDI_OVERRIDE_CHARACTERS_REGEXP, '')
18
18
  end
19
19
  end
20
20
  end
@@ -2,18 +2,18 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module UnicodeTools
5
- module StringExt
5
+ module StringExtension
6
6
  module Base
7
7
  def has_whitespace?
8
- !!(self =~ WHITESPACE_REGEX)
8
+ !!(self =~ WHITESPACE_REGEXP)
9
9
  end
10
10
 
11
11
  def replace_whitespace(replacement = nil, &block)
12
- gsub(WHITESPACE_REGEX, replacement, &block)
12
+ gsub(WHITESPACE_REGEXP, replacement, &block)
13
13
  end
14
14
 
15
15
  def replace_whitespace!(replacement = nil, &block)
16
- gsub!(WHITESPACE_REGEX, replacement, &block)
16
+ gsub!(WHITESPACE_REGEXP, replacement, &block)
17
17
  end
18
18
  end
19
19
  end
@@ -2,7 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module UnicodeTools
5
- module StringExt
5
+ module StringExtension
6
6
  module Squish
7
7
 
8
8
  # Removes leading, trailing whitespace and
@@ -18,8 +18,9 @@ module UnicodeTools
18
18
  end
19
19
 
20
20
  def squish!
21
- gsub!(SURROUNDING_WHITESPACE_REGEX, '')
22
- gsub!(WHITESPACE_REGEX, ' ')
21
+ return self if empty?
22
+ gsub!(SURROUNDING_WHITESPACE_REGEXP, '')
23
+ gsub!(WHITESPACE_REGEXP, ' ')
23
24
  self
24
25
  end
25
26
  end
@@ -2,7 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module UnicodeTools
5
- module StringExt
5
+ module StringExtension
6
6
  module Trim
7
7
 
8
8
  # Removes leading and trailing whitespace.
@@ -13,27 +13,27 @@ module UnicodeTools
13
13
  # ​\u2028\u2029​\u202f\u205f​\u3000"
14
14
  # string.trim => ""
15
15
  def trim
16
- gsub(SURROUNDING_WHITESPACE_REGEX, '')
16
+ gsub(SURROUNDING_WHITESPACE_REGEXP, '')
17
17
  end
18
18
 
19
19
  def trim!
20
- gsub!(SURROUNDING_WHITESPACE_REGEX, '')
20
+ gsub!(SURROUNDING_WHITESPACE_REGEXP, '')
21
21
  end
22
22
 
23
23
  def ltrim
24
- gsub(LEADING_WHITESPACE_REGEX, '')
24
+ gsub(LEADING_WHITESPACE_REGEXP, '')
25
25
  end
26
26
 
27
27
  def ltrim!
28
- gsub!(LEADING_WHITESPACE_REGEX, '')
28
+ gsub!(LEADING_WHITESPACE_REGEXP, '')
29
29
  end
30
30
 
31
31
  def rtrim
32
- gsub(TRAILING_WHITESPACE_REGEX, '')
32
+ gsub(TRAILING_WHITESPACE_REGEXP, '')
33
33
  end
34
34
 
35
35
  def rtrim!
36
- gsub!(TRAILING_WHITESPACE_REGEX, '')
36
+ gsub!(TRAILING_WHITESPACE_REGEXP, '')
37
37
  end
38
38
  end
39
39
  end
@@ -7,10 +7,10 @@ module UnicodeTools
7
7
  \u0020 \u3000 \u1680 \u2000-\u200A
8
8
  \u205F \u00A0 \u202F \u180E ).freeze
9
9
 
10
- WHITESPACE_REGEX = /[#{WHITESPACE_CHARS.join('')}]+/.freeze
11
- LEADING_WHITESPACE_REGEX = /\A#{WHITESPACE_REGEX.source}+/.freeze
12
- TRAILING_WHITESPACE_REGEX = /#{WHITESPACE_REGEX.source}+\z/.freeze
13
- SURROUNDING_WHITESPACE_REGEX = /(\A#{WHITESPACE_REGEX.source})|(#{WHITESPACE_REGEX.source}\z)/.freeze
10
+ WHITESPACE_REGEXP = /[#{WHITESPACE_CHARS.join('')}]+/.freeze
11
+ LEADING_WHITESPACE_REGEXP = /\A#{WHITESPACE_REGEXP.source}+/.freeze
12
+ TRAILING_WHITESPACE_REGEXP = /#{WHITESPACE_REGEXP.source}+\z/.freeze
13
+ SURROUNDING_WHITESPACE_REGEXP = /(\A#{WHITESPACE_REGEXP.source})|(#{WHITESPACE_REGEXP.source}\z)/.freeze
14
14
 
15
15
  class << self
16
16
  def has_whitespace?(string)
data/lib/unicode-tools.rb CHANGED
@@ -1,20 +1,32 @@
1
1
  # encoding: utf-8
2
2
  # frozen_string_literal: true
3
3
 
4
- # Override ActiveSupport's String#squish
4
+ # Override ActiveSupport's String#squish.
5
5
  begin
6
6
  require 'active_support/core_ext/string'
7
7
  rescue LoadError
8
+ nil
8
9
  end
9
10
 
10
11
  require 'unicode-tools/whitespace'
11
- require 'unicode-tools/string_ext/base'
12
- require 'unicode-tools/string_ext/trim'
13
- require 'unicode-tools/string_ext/squish'
12
+ require 'unicode-tools/string_extension/base'
13
+ require 'unicode-tools/string_extension/trim'
14
+ require 'unicode-tools/string_extension/squish'
15
+ require 'unicode-tools/active_record_extension/squish'
14
16
  require 'unicode-tools/bidi'
15
17
 
16
18
  class String
17
- include UnicodeTools::StringExt::Base
18
- include UnicodeTools::StringExt::Trim
19
- include UnicodeTools::StringExt::Squish
19
+ include UnicodeTools::StringExtension::Base
20
+ include UnicodeTools::StringExtension::Trim
21
+ include UnicodeTools::StringExtension::Squish
22
+ end
23
+
24
+ begin
25
+ require 'active_model'
26
+ require 'active_support/lazy_load_hooks'
27
+
28
+ ActiveModel.extend UnicodeTools::ActiveRecordExtension::Squish
29
+ ActiveSupport.on_load(:active_record) { ActiveRecord::Base.extend UnicodeTools::ActiveRecordExtension::Squish }
30
+ rescue LoadError
31
+ nil
20
32
  end
@@ -3,11 +3,11 @@
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'unicode-tools'
6
- s.version = '1.0.1'
6
+ s.version = '2.0.1'
7
7
  s.authors = ['Yaroslav Konoplov']
8
8
  s.email = ['eahome00@gmail.com']
9
- s.summary = 'Unicode Tools'
10
- s.description = 'Unicode Tools'
9
+ s.summary = 'Unicode-friendly String#trim and String#squish'
10
+ s.description = 'Unicode-friendly String#trim and String#squish'
11
11
  s.homepage = 'http://github.com/yivo/unicode-tools'
12
12
  s.license = 'MIT'
13
13
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unicode-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yaroslav Konoplov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-20 00:00:00.000000000 Z
11
+ date: 2022-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -38,7 +38,7 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 3.1.8
41
- description: Unicode Tools
41
+ description: Unicode-friendly String#trim and String#squish
42
42
  email:
43
43
  - eahome00@gmail.com
44
44
  executables: []
@@ -46,15 +46,17 @@ extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
48
  - ".gitignore"
49
+ - ".ruby-version"
49
50
  - Gemfile
50
51
  - LICENSE.txt
51
52
  - README.md
52
53
  - Rakefile
53
54
  - lib/unicode-tools.rb
55
+ - lib/unicode-tools/active_record_extension/squish.rb
54
56
  - lib/unicode-tools/bidi.rb
55
- - lib/unicode-tools/string_ext/base.rb
56
- - lib/unicode-tools/string_ext/squish.rb
57
- - lib/unicode-tools/string_ext/trim.rb
57
+ - lib/unicode-tools/string_extension/base.rb
58
+ - lib/unicode-tools/string_extension/squish.rb
59
+ - lib/unicode-tools/string_extension/trim.rb
58
60
  - lib/unicode-tools/whitespace.rb
59
61
  - test/test_unicode_tools.rb
60
62
  - unicode-tools.gemspec
@@ -77,10 +79,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
77
79
  - !ruby/object:Gem::Version
78
80
  version: '0'
79
81
  requirements: []
80
- rubyforge_project:
81
- rubygems_version: 2.5.1
82
+ rubygems_version: 3.1.6
82
83
  signing_key:
83
84
  specification_version: 4
84
- summary: Unicode Tools
85
+ summary: Unicode-friendly String#trim and String#squish
85
86
  test_files:
86
87
  - test/test_unicode_tools.rb