mb_string 0.1.1 → 0.1.2
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +8 -1
- data/lib/mb_string/core_ext/string.rb +22 -0
- data/lib/mb_string/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 40a3d7b7a1fe61dd390df2fc93dfdf2d7b700f47
|
|
4
|
+
data.tar.gz: 7a081de0e2a80978feca7828647bdabbf25245a8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5311b27cab2c3290970128a36ec751bc3abc927e9db011480c5b6a629f58208863a04d86fa3fa4e580fc7551095d1cd41ad2377d2e50bf9e54358e44007a76fa
|
|
7
|
+
data.tar.gz: 34b3701a0464a1d3be2c41225103b12adecd71b2d97a1a2ac2edbc871c8c243f2d5ce7eba93ff924067e58a1bd37ce9d435df63a11c5fbc98d21fb0ba9acb61e
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# mb_string
|
|
2
2
|
|
|
3
|
-
`mb_string` is extended Ruby string class for dealing multi-byte strings, add `mb_ljust`, `mb_rjust` and `
|
|
3
|
+
`mb_string` is extended Ruby string class for dealing multi-byte strings, add `mb_ljust`, `mb_rjust`, `mb_center` and `mb_truncate` methods.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
@@ -31,7 +31,14 @@ Or install it yourself as:
|
|
|
31
31
|
"あいうえお".mb_ljust(20, 'ほげ')
|
|
32
32
|
=> "あいうえおほげほげほ"
|
|
33
33
|
|
|
34
|
+
`mb_truncate`:
|
|
34
35
|
|
|
36
|
+
require 'mb_string'
|
|
37
|
+
"あいうえお".mb_truncate(6)
|
|
38
|
+
=> "あ..."
|
|
39
|
+
|
|
40
|
+
"あいうえお".mb_truncate(8, omission: 'ほげ')
|
|
41
|
+
=> "あいほげ"
|
|
35
42
|
|
|
36
43
|
## Development
|
|
37
44
|
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
require 'unicode/display_width'
|
|
2
|
+
# TODO: asciiかどうか判定する?
|
|
3
|
+
# TODO: circle ci
|
|
2
4
|
|
|
3
5
|
class String
|
|
4
6
|
def mb_ljust(width, pad_str = ' ')
|
|
@@ -25,6 +27,26 @@ class String
|
|
|
25
27
|
end
|
|
26
28
|
end
|
|
27
29
|
|
|
30
|
+
def mb_truncate(truncate_at, options = {})
|
|
31
|
+
return dup unless display_width > truncate_at
|
|
32
|
+
|
|
33
|
+
omission = options[:omission] || '...'
|
|
34
|
+
length_with_room_for_omission = truncate_at - omission.display_width
|
|
35
|
+
|
|
36
|
+
size = 0
|
|
37
|
+
slice = ''
|
|
38
|
+
each_char do |c|
|
|
39
|
+
char_size = c.display_width
|
|
40
|
+
if size + char_size > length_with_room_for_omission
|
|
41
|
+
slice << omission
|
|
42
|
+
break
|
|
43
|
+
end
|
|
44
|
+
size += char_size
|
|
45
|
+
slice << c
|
|
46
|
+
end
|
|
47
|
+
slice
|
|
48
|
+
end
|
|
49
|
+
|
|
28
50
|
private
|
|
29
51
|
|
|
30
52
|
def mb_execute(width)
|
data/lib/mb_string/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mb_string
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- rochefort
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-11-
|
|
11
|
+
date: 2015-11-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: unicode-display_width
|
|
@@ -76,6 +76,7 @@ files:
|
|
|
76
76
|
- ".gitignore"
|
|
77
77
|
- ".rspec"
|
|
78
78
|
- ".travis.yml"
|
|
79
|
+
- CHANGELOG.md
|
|
79
80
|
- Gemfile
|
|
80
81
|
- README.md
|
|
81
82
|
- Rakefile
|