verse 0.4.0 → 0.5.0
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/.travis.yml +12 -10
- data/CHANGELOG.md +38 -4
- data/Gemfile +8 -4
- data/README.md +12 -12
- data/benchmarks/speed_profile.rb +26 -0
- data/lib/verse.rb +1 -2
- data/lib/verse/alignment.rb +11 -10
- data/lib/verse/padder.rb +3 -1
- data/lib/verse/padding.rb +1 -2
- data/lib/verse/sanitizer.rb +8 -5
- data/lib/verse/truncation.rb +4 -5
- data/lib/verse/version.rb +1 -1
- data/lib/verse/wrapping.rb +16 -8
- data/spec/unit/padder/parse_spec.rb +1 -1
- data/spec/unit/sanitizer/ansi_spec.rb +1 -1
- data/spec/unit/sanitizer/replace_spec.rb +1 -1
- data/spec/unit/sanitizer/sanitize_spec.rb +1 -1
- data/verse.gemspec +3 -2
- metadata +28 -14
- data/.ruby-version +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b480b85987f2de41f4570f5a0522d2acb3f7e78d
|
4
|
+
data.tar.gz: 030f669b31afcf4329a79d906d4bb630ee447ad3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1944945843174ee5c0e2c91c7698c1b1ef7ea06759c2a1cca1917740bbffc3a77dc828bcc547218c30a40a127bf64360e423563b11f379d9af65de5b93bbd8a3
|
7
|
+
data.tar.gz: 6e48975ef2b03f0aacbfddb9bb7c01da0a04c588ffb74aa2e3e8d569d9ec15bc7bc4b7ea2b9e627c675eebcc320d1a30a35831f69560f321ce30576a6fe66450
|
data/.travis.yml
CHANGED
@@ -1,22 +1,24 @@
|
|
1
|
+
---
|
1
2
|
language: ruby
|
2
|
-
|
3
|
+
sudo: false
|
4
|
+
cache: bundler
|
5
|
+
language: ruby
|
6
|
+
bundler_args: --without benchmarks
|
3
7
|
script: "bundle exec rake ci"
|
4
8
|
rvm:
|
5
|
-
- 1.9.3
|
6
9
|
- 2.0.0
|
7
10
|
- 2.1.0
|
8
|
-
- 2.2.
|
11
|
+
- 2.2.5
|
12
|
+
- 2.3.1
|
13
|
+
- jruby-9.1.1.0
|
14
|
+
- jruby-head
|
9
15
|
- ruby-head
|
10
16
|
matrix:
|
11
|
-
include:
|
12
|
-
- rvm: jruby-19mode
|
13
|
-
- rvm: jruby-20mode
|
14
|
-
- rvm: jruby-21mode
|
15
|
-
- rvm: jruby-head
|
16
|
-
- rvm: rbx-2
|
17
17
|
allow_failures:
|
18
|
-
- rvm: ruby-head
|
19
18
|
- rvm: jruby-head
|
19
|
+
- rvm: ruby-head
|
20
20
|
fast_finish: true
|
21
21
|
branches:
|
22
22
|
only: master
|
23
|
+
notifications:
|
24
|
+
email: false
|
data/CHANGELOG.md
CHANGED
@@ -1,25 +1,59 @@
|
|
1
|
-
|
1
|
+
# Change log
|
2
2
|
|
3
|
+
## [v0.5.0] - 2016-10-25
|
4
|
+
|
5
|
+
### Added
|
6
|
+
* Add ParseError to Padder
|
7
|
+
|
8
|
+
### Changed
|
9
|
+
* Change Sanitizer to module
|
10
|
+
* Replaces UnicodeUtils.display_width with Unicode::DisplayWidth.of by @MichaelBaker
|
11
|
+
|
12
|
+
## [v0.4.0] - 2015-03-28
|
13
|
+
|
14
|
+
### Added
|
3
15
|
* Add Sanitizer#ansi? to check for ANSI codes
|
16
|
+
|
17
|
+
### Changed
|
4
18
|
* Change Alignment to work with ANSI codes
|
5
19
|
* Change Truncation to work with ANSI codes
|
6
20
|
* Change Wrapping to work with ANSI codes
|
7
21
|
* Chnage Padding to work with ANSI codes
|
8
22
|
|
9
|
-
|
23
|
+
## [v0.3.0] - 2015-02-28
|
10
24
|
|
25
|
+
### Added
|
11
26
|
* Add Sanitizer#replace for substitutiong linebreaks
|
12
27
|
* Add Padder for parsing padding values
|
13
28
|
* Add Padding for padding content around
|
29
|
+
|
30
|
+
### Changed
|
14
31
|
* Change Wrapping#wrap to preserve whitespace characters
|
15
32
|
|
16
|
-
|
33
|
+
## [v0.2.1] - 2015-02-15
|
17
34
|
|
35
|
+
### Fixed
|
18
36
|
* Fix empty string alignment
|
19
37
|
* Fix alignment to stop modifying original content
|
20
38
|
|
21
|
-
|
39
|
+
## [v0.2.0] - 2015-02-15
|
22
40
|
|
41
|
+
### Added
|
23
42
|
* Add unicode support
|
43
|
+
|
44
|
+
### Changed
|
24
45
|
* Change wrap, truncate and align to work with unicode characters
|
46
|
+
|
47
|
+
### Removed
|
25
48
|
* Remove padding and indent from Verse::Wrapping
|
49
|
+
|
50
|
+
## [v0.1.0] - 2015-02-07
|
51
|
+
|
52
|
+
* Inital implementation and release
|
53
|
+
|
54
|
+
[v0.5.0]: https://github.com/piotrmurach/verse/compare/v0.4.0...v0.5.0
|
55
|
+
[v0.4.0]: https://github.com/piotrmurach/verse/compare/v0.3.0...v0.4.0
|
56
|
+
[v0.3.0]: https://github.com/piotrmurach/verse/compare/v0.2.1...v0.3.0
|
57
|
+
[v0.2.1]: https://github.com/piotrmurach/verse/compare/v0.2.0...v0.2.1
|
58
|
+
[v0.2.0]: https://github.com/piotrmurach/verse/compare/v0.1.0...v0.2.0
|
59
|
+
[v0.1.0]: https://github.com/piotrmurach/verse/compare/v0.1.0
|
data/Gemfile
CHANGED
@@ -3,13 +3,17 @@ source 'https://rubygems.org'
|
|
3
3
|
gemspec
|
4
4
|
|
5
5
|
group :development do
|
6
|
-
gem 'rake', '~>
|
7
|
-
gem 'rspec', '~> 3.
|
6
|
+
gem 'rake', '~> 11.1.1'
|
7
|
+
gem 'rspec', '~> 3.5.0'
|
8
8
|
gem 'yard', '~> 0.8.7'
|
9
9
|
end
|
10
10
|
|
11
11
|
group :metrics do
|
12
|
-
gem 'coveralls', '~> 0.
|
13
|
-
gem 'simplecov', '~> 0.
|
12
|
+
gem 'coveralls', '~> 0.8.2'
|
13
|
+
gem 'simplecov', '~> 0.10.0'
|
14
14
|
gem 'yardstick', '~> 0.9.9'
|
15
15
|
end
|
16
|
+
|
17
|
+
group :benchmarks do
|
18
|
+
gem 'benchmark-ips'
|
19
|
+
end
|
data/README.md
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# Verse
|
2
|
-
[][gem]
|
3
|
+
[][travis]
|
4
|
+
[][codeclimate]
|
5
|
+
[][coverage]
|
6
|
+
[][inchpages]
|
7
7
|
|
8
8
|
[gem]: http://badge.fury.io/rb/verse
|
9
|
-
[travis]: http://travis-ci.org/
|
10
|
-
[codeclimate]: https://codeclimate.com/github/
|
11
|
-
[coverage]: https://coveralls.io/r/
|
12
|
-
[inchpages]: http://inch-ci.org/github/
|
9
|
+
[travis]: http://travis-ci.org/piotrmurach/verse
|
10
|
+
[codeclimate]: https://codeclimate.com/github/piotrmurach/verse
|
11
|
+
[coverage]: https://coveralls.io/r/piotrmurach/verse
|
12
|
+
[inchpages]: http://inch-ci.org/github/piotrmurach/verse
|
13
13
|
|
14
14
|
> Text transformations such as truncation, wrapping, aligning, indentation and grouping of words.
|
15
15
|
|
@@ -66,7 +66,7 @@ alignment = Verse::Alignment.new "for there is no folly of the beast\n" +
|
|
66
66
|
Then using direction out of `:right`, `:left` or `:center` methods and passing width you can align the text:
|
67
67
|
|
68
68
|
```ruby
|
69
|
-
|
69
|
+
alignment.align(40, :right) # =>
|
70
70
|
" for there is no folly of the beast\n" +
|
71
71
|
" of the earth which\n" +
|
72
72
|
" is not infinitely\n" +
|
@@ -245,7 +245,7 @@ Verse.wrap(text, wrap_at)
|
|
245
245
|
|
246
246
|
## Contributing
|
247
247
|
|
248
|
-
1. Fork it ( https://github.com/
|
248
|
+
1. Fork it ( https://github.com/piotrmurach/verse/fork )
|
249
249
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
250
250
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
251
251
|
4. Push to the branch (`git push origin my-new-feature`)
|
@@ -253,4 +253,4 @@ Verse.wrap(text, wrap_at)
|
|
253
253
|
|
254
254
|
## Copyright
|
255
255
|
|
256
|
-
Copyright (c) 2015 Piotr Murach. See LICENSE for further details.
|
256
|
+
Copyright (c) 2015-2016 Piotr Murach. See LICENSE for further details.
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'benchmark/ips'
|
2
|
+
require 'verse'
|
3
|
+
|
4
|
+
text = "Ignorance is the parent of fear."
|
5
|
+
|
6
|
+
Benchmark.ips do |x|
|
7
|
+
x.report('wrap') do
|
8
|
+
Verse::Wrapping.wrap(text, 10)
|
9
|
+
end
|
10
|
+
|
11
|
+
x.report('truncate') do
|
12
|
+
Verse::Truncation.truncate(text, 10)
|
13
|
+
end
|
14
|
+
|
15
|
+
x.compare!
|
16
|
+
end
|
17
|
+
|
18
|
+
# Warming up --------------------------------------
|
19
|
+
# wrap 178.000 i/100ms
|
20
|
+
# truncate 262.000 i/100ms
|
21
|
+
# Calculating -------------------------------------
|
22
|
+
# wrap 1.812k (± 1.9%) i/s - 9.078k in 5.010776s
|
23
|
+
# truncate 2.625k (± 1.9%) i/s - 13.362k in 5.092305s
|
24
|
+
# Comparison:
|
25
|
+
# truncate: 2624.9 i/s
|
26
|
+
# wrap: 1812.3 i/s - 1.45x slower
|
data/lib/verse.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'unicode/display_width'
|
4
4
|
require 'unicode_utils/each_grapheme'
|
5
5
|
|
6
6
|
require 'verse/alignment'
|
@@ -14,7 +14,6 @@ require 'verse/version'
|
|
14
14
|
module Verse
|
15
15
|
SPACE = ' '.freeze
|
16
16
|
NEWLINE = "\n".freeze
|
17
|
-
TAB = "\n".freeze
|
18
17
|
RESET = "\e[0m".freeze
|
19
18
|
ANSI = "\033".freeze
|
20
19
|
|
data/lib/verse/alignment.rb
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
module Verse
|
4
4
|
# A class responsible for text alignment
|
5
5
|
class Alignment
|
6
|
-
|
7
6
|
attr_reader :fill
|
8
7
|
|
9
8
|
attr_reader :direction
|
@@ -13,7 +12,6 @@ module Verse
|
|
13
12
|
# @api public
|
14
13
|
def initialize(text, options = {})
|
15
14
|
@text = text
|
16
|
-
@sanitizer = Sanitizer.new
|
17
15
|
@fill = options.fetch(:fill) { SPACE }
|
18
16
|
@direction = options.fetch(:direction) { :left }
|
19
17
|
end
|
@@ -82,6 +80,11 @@ module Verse
|
|
82
80
|
|
83
81
|
protected
|
84
82
|
|
83
|
+
# The text to align
|
84
|
+
#
|
85
|
+
# @ api private
|
86
|
+
attr_reader :text
|
87
|
+
|
85
88
|
# @api private
|
86
89
|
def convert_to_method(direction)
|
87
90
|
case direction.to_sym
|
@@ -89,7 +92,7 @@ module Verse
|
|
89
92
|
when :right then :right_justify
|
90
93
|
when :center then :center_justify
|
91
94
|
else
|
92
|
-
|
95
|
+
raise ArgumentError, "Unknown alignment `#{direction}`."
|
93
96
|
end
|
94
97
|
end
|
95
98
|
|
@@ -104,7 +107,7 @@ module Verse
|
|
104
107
|
|
105
108
|
# @api private
|
106
109
|
def left_justify(text, width, filler)
|
107
|
-
width_diff = width -
|
110
|
+
width_diff = width - display_width(text)
|
108
111
|
if width_diff > 0
|
109
112
|
text + filler * width_diff
|
110
113
|
else
|
@@ -114,7 +117,7 @@ module Verse
|
|
114
117
|
|
115
118
|
# @api private
|
116
119
|
def right_justify(text, width, filler)
|
117
|
-
width_diff = width -
|
120
|
+
width_diff = width - display_width(text)
|
118
121
|
if width_diff > 0
|
119
122
|
filler * width_diff + text
|
120
123
|
else
|
@@ -124,7 +127,7 @@ module Verse
|
|
124
127
|
|
125
128
|
# @api private
|
126
129
|
def center_justify(text, width, filler)
|
127
|
-
text_width =
|
130
|
+
text_width = display_width(text)
|
128
131
|
width_diff = width - text_width
|
129
132
|
if width_diff > 0
|
130
133
|
right_count = (width_diff.to_f / 2).ceil
|
@@ -136,10 +139,8 @@ module Verse
|
|
136
139
|
end
|
137
140
|
|
138
141
|
# @api private
|
139
|
-
def
|
140
|
-
|
142
|
+
def display_width(text)
|
143
|
+
Unicode::DisplayWidth.of(Sanitizer.sanitize(text))
|
141
144
|
end
|
142
|
-
|
143
|
-
attr_reader :text
|
144
145
|
end # Alignment
|
145
146
|
end # Verse
|
data/lib/verse/padder.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
3
|
module Verse
|
4
|
+
ParseError = Class.new(ArgumentError)
|
5
|
+
|
4
6
|
# A class responsible for parsing padding value
|
5
7
|
#
|
6
8
|
# Used internally by {Verse::Padding}
|
@@ -55,7 +57,7 @@ module Verse
|
|
55
57
|
elsif value.size == 4
|
56
58
|
value
|
57
59
|
else
|
58
|
-
fail
|
60
|
+
fail ParseError, 'Wrong :padding parameter, must be an array'
|
59
61
|
end
|
60
62
|
end
|
61
63
|
|
data/lib/verse/padding.rb
CHANGED
@@ -9,7 +9,6 @@ module Verse
|
|
9
9
|
def initialize(text, options = {})
|
10
10
|
@text = text
|
11
11
|
@padding = Padder.parse(options[:padding])
|
12
|
-
@sanitizer = Sanitizer.new
|
13
12
|
end
|
14
13
|
|
15
14
|
# Pad content out
|
@@ -89,7 +88,7 @@ module Verse
|
|
89
88
|
end
|
90
89
|
|
91
90
|
def display_width(string)
|
92
|
-
|
91
|
+
Unicode::DisplayWidth.of(Sanitizer.sanitize(string))
|
93
92
|
end
|
94
93
|
end # Padding
|
95
94
|
end # Verse
|
data/lib/verse/sanitizer.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
3
|
module Verse
|
4
|
-
|
5
|
-
ANSI_MATCHER = /(\[)?\033(\[)?[;?\d]*[\dA-Za-z](\])
|
4
|
+
module Sanitizer
|
5
|
+
ANSI_MATCHER = /(\[)?\033(\[)?[;?\d]*[\dA-Za-z](\])?/
|
6
6
|
|
7
7
|
LINE_BREAK = "(\r\n+|\r+|\n+|\t+)".freeze
|
8
8
|
|
@@ -16,6 +16,7 @@ module Verse
|
|
16
16
|
def sanitize(text)
|
17
17
|
text.gsub(ANSI_MATCHER, '')
|
18
18
|
end
|
19
|
+
module_function :sanitize
|
19
20
|
|
20
21
|
# Check if string is an ANSI code
|
21
22
|
#
|
@@ -28,6 +29,7 @@ module Verse
|
|
28
29
|
def ansi?(string)
|
29
30
|
!!(string =~ /^(\[)?\033(\[)?[;?\d]*[\dA-Za-z]([\];])?$/)
|
30
31
|
end
|
32
|
+
module_function :ansi?
|
31
33
|
|
32
34
|
# Replace separator with whitespace
|
33
35
|
#
|
@@ -43,9 +45,10 @@ module Verse
|
|
43
45
|
#
|
44
46
|
# @api public
|
45
47
|
def replace(text, separator = LINE_BREAK)
|
46
|
-
text.gsub(/([ ]+)#{separator}/, "\\1")
|
47
|
-
|
48
|
-
|
48
|
+
text.gsub(/([ ]+)#{separator}/, "\\1")
|
49
|
+
.gsub(/#{separator}(?<space>[ ]+)/, "\\k<space>")
|
50
|
+
.gsub(/#{separator}/, ' ')
|
49
51
|
end
|
52
|
+
module_function :replace
|
50
53
|
end # Sanitizer
|
51
54
|
end # Verse
|
data/lib/verse/truncation.rb
CHANGED
@@ -5,7 +5,7 @@ module Verse
|
|
5
5
|
class Truncation
|
6
6
|
DEFAULT_TRAILING = '…'.freeze
|
7
7
|
|
8
|
-
DEFAULT_LENGTH = 30
|
8
|
+
DEFAULT_LENGTH = 30
|
9
9
|
|
10
10
|
attr_reader :separator
|
11
11
|
|
@@ -23,7 +23,6 @@ module Verse
|
|
23
23
|
# @api public
|
24
24
|
def initialize(text, options = {})
|
25
25
|
@text = text.dup.freeze
|
26
|
-
@sanitizer = Sanitizer.new
|
27
26
|
@separator = options.fetch(:separator) { nil }
|
28
27
|
@trailing = options.fetch(:trailing) { DEFAULT_TRAILING }
|
29
28
|
end
|
@@ -63,7 +62,7 @@ module Verse
|
|
63
62
|
trail = options.fetch(:trailing) { trailing }
|
64
63
|
separation = options.fetch(:separator) { separator }
|
65
64
|
width = display_width(text)
|
66
|
-
sanitized_text =
|
65
|
+
sanitized_text = Sanitizer.sanitize(text)
|
67
66
|
|
68
67
|
return text if width <= truncate_at
|
69
68
|
|
@@ -107,12 +106,12 @@ module Verse
|
|
107
106
|
|
108
107
|
# @api private
|
109
108
|
def to_chars(text)
|
110
|
-
UnicodeUtils.each_grapheme(text)
|
109
|
+
UnicodeUtils.each_grapheme(text)
|
111
110
|
end
|
112
111
|
|
113
112
|
# @api private
|
114
113
|
def display_width(string)
|
115
|
-
|
114
|
+
Unicode::DisplayWidth.of(Sanitizer.sanitize(string))
|
116
115
|
end
|
117
116
|
end # Truncation
|
118
117
|
end # Verse
|
data/lib/verse/version.rb
CHANGED
data/lib/verse/wrapping.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module Verse
|
4
4
|
# A class responsible for text wrapping
|
5
5
|
class Wrapping
|
6
|
-
DEFAULT_WIDTH = 80
|
6
|
+
DEFAULT_WIDTH = 80
|
7
7
|
|
8
8
|
# Initialize a Wrapping
|
9
9
|
#
|
@@ -15,9 +15,8 @@ module Verse
|
|
15
15
|
#
|
16
16
|
# @api public
|
17
17
|
def initialize(text, options = {})
|
18
|
-
@text
|
18
|
+
@text = text
|
19
19
|
@line_width = options.fetch(:line_width) { DEFAULT_WIDTH }
|
20
|
-
@sanitizer = Sanitizer.new
|
21
20
|
end
|
22
21
|
|
23
22
|
# Wrap a text into lines no longer than wrap_at
|
@@ -68,10 +67,10 @@ module Verse
|
|
68
67
|
#
|
69
68
|
# @api private
|
70
69
|
def format_paragraph(paragraph, wrap_at, ansi_stack)
|
71
|
-
cleared_para =
|
70
|
+
cleared_para = Sanitizer.replace(paragraph)
|
72
71
|
lines = []
|
73
72
|
line = ''
|
74
|
-
word
|
73
|
+
word = ''
|
75
74
|
word_length = 0
|
76
75
|
line_length = 0
|
77
76
|
char_length = 0 # visible char length
|
@@ -79,14 +78,14 @@ module Verse
|
|
79
78
|
total_length = 0
|
80
79
|
ansi = ''
|
81
80
|
matched = nil
|
82
|
-
|
81
|
+
to_chars(cleared_para) do |char|
|
83
82
|
if char == ANSI # found ansi
|
84
83
|
ansi << char && next
|
85
84
|
end
|
86
85
|
|
87
86
|
if ansi.length > 0
|
88
87
|
ansi << char
|
89
|
-
if
|
88
|
+
if Sanitizer.ansi?(ansi) # we found ansi let's consume
|
90
89
|
matched = ansi
|
91
90
|
elsif matched
|
92
91
|
ansi_stack << [matched[0...-1], line_length + word_length]
|
@@ -173,11 +172,20 @@ module Verse
|
|
173
172
|
output
|
174
173
|
end
|
175
174
|
|
175
|
+
# @api private
|
176
|
+
def to_chars(text, &block)
|
177
|
+
if block_given?
|
178
|
+
UnicodeUtils.each_grapheme(text, &block)
|
179
|
+
else
|
180
|
+
UnicodeUtils.each_grapheme(text)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
176
184
|
# Visible width of string
|
177
185
|
#
|
178
186
|
# @api private
|
179
187
|
def display_width(string)
|
180
|
-
|
188
|
+
Unicode::DisplayWidth.of(Sanitizer.sanitize(string))
|
181
189
|
end
|
182
190
|
end # Wrapping
|
183
191
|
end # Verse
|
data/verse.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = [""]
|
11
11
|
spec.summary = %q{Text transformations such as truncation, wrapping, aligning, indentation and grouping of words.}
|
12
12
|
spec.description = %q{Text transformations such as truncation, wrapping, aligning, indentation and grouping of words.}
|
13
|
-
spec.homepage = "https://github.com/
|
13
|
+
spec.homepage = "https://github.com/piotrmurach/verse"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -18,7 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(spec)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_dependency 'unicode_utils',
|
21
|
+
spec.add_dependency 'unicode_utils', '~> 1.4.0'
|
22
|
+
spec.add_dependency 'unicode-display_width','~> 1.1.0'
|
22
23
|
|
23
24
|
spec.add_development_dependency 'bundler', '~> 1.5'
|
24
25
|
end
|
metadata
CHANGED
@@ -1,41 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: verse
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Murach
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: unicode_utils
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.4.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.4.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: unicode-display_width
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.1.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.1.0
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
|
-
- - ~>
|
45
|
+
- - "~>"
|
32
46
|
- !ruby/object:Gem::Version
|
33
47
|
version: '1.5'
|
34
48
|
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
|
-
- - ~>
|
52
|
+
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '1.5'
|
41
55
|
description: Text transformations such as truncation, wrapping, aligning, indentation
|
@@ -46,15 +60,15 @@ executables: []
|
|
46
60
|
extensions: []
|
47
61
|
extra_rdoc_files: []
|
48
62
|
files:
|
49
|
-
- .gitignore
|
50
|
-
- .rspec
|
51
|
-
- .
|
52
|
-
- .travis.yml
|
63
|
+
- ".gitignore"
|
64
|
+
- ".rspec"
|
65
|
+
- ".travis.yml"
|
53
66
|
- CHANGELOG.md
|
54
67
|
- Gemfile
|
55
68
|
- LICENSE.txt
|
56
69
|
- README.md
|
57
70
|
- Rakefile
|
71
|
+
- benchmarks/speed_profile.rb
|
58
72
|
- lib/verse.rb
|
59
73
|
- lib/verse/alignment.rb
|
60
74
|
- lib/verse/padder.rb
|
@@ -84,7 +98,7 @@ files:
|
|
84
98
|
- tasks/coverage.rake
|
85
99
|
- tasks/spec.rake
|
86
100
|
- verse.gemspec
|
87
|
-
homepage: https://github.com/
|
101
|
+
homepage: https://github.com/piotrmurach/verse
|
88
102
|
licenses:
|
89
103
|
- MIT
|
90
104
|
metadata: {}
|
@@ -94,17 +108,17 @@ require_paths:
|
|
94
108
|
- lib
|
95
109
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
110
|
requirements:
|
97
|
-
- -
|
111
|
+
- - ">="
|
98
112
|
- !ruby/object:Gem::Version
|
99
113
|
version: '0'
|
100
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
115
|
requirements:
|
102
|
-
- -
|
116
|
+
- - ">="
|
103
117
|
- !ruby/object:Gem::Version
|
104
118
|
version: '0'
|
105
119
|
requirements: []
|
106
120
|
rubyforge_project:
|
107
|
-
rubygems_version: 2.
|
121
|
+
rubygems_version: 2.5.1
|
108
122
|
signing_key:
|
109
123
|
specification_version: 4
|
110
124
|
summary: Text transformations such as truncation, wrapping, aligning, indentation
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2.0.0
|