word_wrap 0.1.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 +7 -0
- data/.gitignore +20 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +121 -0
- data/Rakefile +7 -0
- data/bin/ww +28 -0
- data/lib/word_wrap.rb +24 -0
- data/lib/word_wrap/version.rb +3 -0
- data/lib/word_wrap/wrapper.rb +96 -0
- data/spec/ww_spec.rb +272 -0
- data/word_wrap.gemspec +27 -0
- metadata +103 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4660c08a3ffd74a97b105526d2361f186bfb236a
|
4
|
+
data.tar.gz: 7591f43b255fa1e8d80d21342ebd1e41d7ab2b62
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 36bb550b86addd349547a880cbaa3c8b705da3a43958b6028254f4d633e2b22b36b2561589790802b696afe1fca37c4dce6b1ec0db0176a8a3d6a53c6c9a42c0
|
7
|
+
data.tar.gz: cb381f125177bc732d3276d068ca59ea063e35f38fb6db269e8fb5a2e17e723ff8c783c1b08aa080a89eb45e1b772034acef86363a303095f7443f8a6e47badc
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Radek Pazdera
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,121 @@
|
|
1
|
+
# WordWrap
|
2
|
+
|
3
|
+
This gem is a extremely simple tool to word-wrap texts, which is the one an
|
4
|
+
only thing it can do. It comes with a script called `ww` that you can use
|
5
|
+
in the command line. And of course, you can get the functionality from within
|
6
|
+
Ruby as well.
|
7
|
+
|
8
|
+
For more information on usage, please refer to the **Usage** section of this
|
9
|
+
README bellow.
|
10
|
+
|
11
|
+
## Installation
|
12
|
+
|
13
|
+
Add this line to your application's Gemfile:
|
14
|
+
|
15
|
+
gem 'word_wrap'
|
16
|
+
|
17
|
+
And then execute:
|
18
|
+
|
19
|
+
$ bundle
|
20
|
+
|
21
|
+
Or install it yourself as:
|
22
|
+
|
23
|
+
$ gem install word_wrap
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
You can use either the binary for the command line or the library directly
|
28
|
+
from your Ruby scripts. Both use cases are explained bellow.
|
29
|
+
|
30
|
+
### Command Line
|
31
|
+
|
32
|
+
When in shell, you can use the `ww` tool (ww stands for word-wrap). It takes
|
33
|
+
only two arguments:
|
34
|
+
|
35
|
+
* `-w W, --width WIDTH` - The width to which the text should be wrapped.
|
36
|
+
It is set to 80 by default.
|
37
|
+
* `-f, --fit` - In this case, the program will also rearrange lines, that are
|
38
|
+
shorter than 80 to fit them as much as possible to the
|
39
|
+
predefined width, in addition to wrapping the lines that exceed
|
40
|
+
it. This option is generally better for plain text. For code,
|
41
|
+
however, it will mess up your indentation.
|
42
|
+
#### Examples
|
43
|
+
|
44
|
+
The example file looks like this:
|
45
|
+
```bash
|
46
|
+
cat hip.txt
|
47
|
+
Forage Shoreditch disrupt Pitchfork meh.
|
48
|
+
|
49
|
+
Mustache 3 wolf moon gluten-free whatever master burn
|
50
|
+
vinyl.
|
51
|
+
```
|
52
|
+
|
53
|
+
```bash
|
54
|
+
ww -w20 hip.txt
|
55
|
+
Forage Shoreditch
|
56
|
+
disrupt Pitchfork
|
57
|
+
meh.
|
58
|
+
|
59
|
+
Mustache 3 wolf moon
|
60
|
+
gluten-free whatever
|
61
|
+
master burn
|
62
|
+
vinyl.
|
63
|
+
```
|
64
|
+
|
65
|
+
But you can also use stdin:
|
66
|
+
```bash
|
67
|
+
cat hip | ww -w20
|
68
|
+
Forage Shoreditch
|
69
|
+
disrupt Pitchfork
|
70
|
+
meh.
|
71
|
+
|
72
|
+
Mustache 3 wolf moon
|
73
|
+
gluten-free whatever
|
74
|
+
master burn
|
75
|
+
vinyl.
|
76
|
+
```
|
77
|
+
|
78
|
+
Note the difference at end of the second paragraph:
|
79
|
+
```bash
|
80
|
+
cat hip | ww -w20
|
81
|
+
Forage Shoreditch
|
82
|
+
disrupt Pitchfork
|
83
|
+
meh.
|
84
|
+
|
85
|
+
Mustache 3 wolf moon
|
86
|
+
gluten-free whatever
|
87
|
+
master burn
|
88
|
+
vinyl.
|
89
|
+
```
|
90
|
+
|
91
|
+
### Ruby library
|
92
|
+
|
93
|
+
If you would like to use the library in Ruby, you have two options:
|
94
|
+
|
95
|
+
* Use the `WordWrap#ww` function directly
|
96
|
+
* Use the `String#wrap` and `String#fit` functions this module adds to the
|
97
|
+
standard `String` class.
|
98
|
+
|
99
|
+
#### Example
|
100
|
+
|
101
|
+
```irb
|
102
|
+
irb(main):001:0> require 'word_wrap'
|
103
|
+
=> true
|
104
|
+
|
105
|
+
irb(main):002:0> WordWrap.ww "123 456 789", 5
|
106
|
+
=> "123\n456\n789\n"
|
107
|
+
|
108
|
+
irb(main):003:0> "123 456 789".wrap 5
|
109
|
+
=> "123\n456\n789\n"
|
110
|
+
|
111
|
+
irb(main):004:0> "123 456 789".fit 8
|
112
|
+
=> "123 456\n789\n"
|
113
|
+
```
|
114
|
+
|
115
|
+
## Contributing
|
116
|
+
|
117
|
+
1. Fork it ( http://github.com/pazdera/word_wrap/fork )
|
118
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
119
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
120
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
121
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
data/bin/ww
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Copyright (c) 2014 Radek Pazdera
|
4
|
+
# Distributed under the MIT License
|
5
|
+
|
6
|
+
require 'optparse'
|
7
|
+
require 'word_wrap'
|
8
|
+
|
9
|
+
options = {:width => 80, :fit => false}
|
10
|
+
OptionParser.new do |opts|
|
11
|
+
opts.banner = "Usage: ww [OPTIONS] [input-file]"
|
12
|
+
|
13
|
+
opts.on("-f", "--fit", "Fit precisely to the defined width") do |f|
|
14
|
+
options[:fit] = f
|
15
|
+
end
|
16
|
+
|
17
|
+
opts.on("-w", "--width COLUMNS", "Set line width (defaults to 80)") do |w|
|
18
|
+
options[:width] = w.to_i
|
19
|
+
end
|
20
|
+
end.parse!
|
21
|
+
|
22
|
+
if ARGV.length > 0
|
23
|
+
File.open(ARGV[0], "r") do |f|
|
24
|
+
print WordWrap::ww f.read, options[:width], options[:fit]
|
25
|
+
end
|
26
|
+
else
|
27
|
+
print WordWrap::ww STDIN.read, options[:width], options[:fit]
|
28
|
+
end
|
data/lib/word_wrap.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# Copyright (c) 2014 Radek Pazdera
|
2
|
+
# Distributed under the MIT License
|
3
|
+
|
4
|
+
require "word_wrap/version"
|
5
|
+
require "word_wrap/wrapper"
|
6
|
+
|
7
|
+
module WordWrap
|
8
|
+
DEFAULT_WIDTH=80
|
9
|
+
|
10
|
+
def self.ww(text, width=DEFAULT_WIDTH, fit=false)
|
11
|
+
w = Wrapper.new(text, width)
|
12
|
+
fit ? w.fit : w.wrap
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class String
|
17
|
+
def wrap(width=DEFAULT_WIDTH)
|
18
|
+
WordWrap.ww(self, width, false)
|
19
|
+
end
|
20
|
+
|
21
|
+
def fit(width=DEFAULT_WIDTH)
|
22
|
+
WordWrap.ww(self, width, true)
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
# Copyright (c) 2014 Radek Pazdera
|
2
|
+
# Distributed under the MIT License
|
3
|
+
|
4
|
+
# The actual implementation of wrapping
|
5
|
+
# TODO: share code between wrap and fit implementations
|
6
|
+
|
7
|
+
module WordWrap
|
8
|
+
class Wrapper
|
9
|
+
def initialize(text, width)
|
10
|
+
@text = text
|
11
|
+
@width = width
|
12
|
+
end
|
13
|
+
|
14
|
+
def fit
|
15
|
+
lines = []
|
16
|
+
next_line = ""
|
17
|
+
continued = false
|
18
|
+
@text.lines do |line|
|
19
|
+
line.chomp! "\n"
|
20
|
+
if line.length == 0
|
21
|
+
if next_line.length > 0
|
22
|
+
lines.push next_line
|
23
|
+
next_line = ""
|
24
|
+
end
|
25
|
+
lines.push ""
|
26
|
+
end
|
27
|
+
|
28
|
+
words = line.split " "
|
29
|
+
|
30
|
+
words.each do |word|
|
31
|
+
word.chomp! "\n"
|
32
|
+
|
33
|
+
if next_line.length + word.length < @width
|
34
|
+
if next_line.length > 0
|
35
|
+
next_line << " " << word
|
36
|
+
else
|
37
|
+
next_line = word
|
38
|
+
end
|
39
|
+
else
|
40
|
+
if word.length >= @width
|
41
|
+
lines.push next_line unless next_line == ""
|
42
|
+
lines.push word
|
43
|
+
next_line = ""
|
44
|
+
else
|
45
|
+
lines.push next_line
|
46
|
+
next_line = word
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
lines.push next_line
|
53
|
+
if next_line.length <= 0
|
54
|
+
lines.join("\n")
|
55
|
+
else
|
56
|
+
lines.join("\n") + "\n"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def wrap
|
61
|
+
output = []
|
62
|
+
|
63
|
+
@text.lines do |line|
|
64
|
+
line.chomp! "\n"
|
65
|
+
if line.length > @width
|
66
|
+
new_lines = split_line(line, @width)
|
67
|
+
while new_lines.length > 1 && new_lines[1].length > @width
|
68
|
+
output.push new_lines[0]
|
69
|
+
new_lines = split_line new_lines[1], @width
|
70
|
+
end
|
71
|
+
output += new_lines
|
72
|
+
else
|
73
|
+
output.push line
|
74
|
+
end
|
75
|
+
end
|
76
|
+
output.map { |s| s.rstrip! }
|
77
|
+
output.join("\n") + "\n"
|
78
|
+
end
|
79
|
+
|
80
|
+
def split_line(line, width)
|
81
|
+
at = line.index /\s/
|
82
|
+
last_at = at
|
83
|
+
|
84
|
+
while at != nil && at < width
|
85
|
+
last_at = at
|
86
|
+
at = line.index /\s/, last_at + 1
|
87
|
+
end
|
88
|
+
|
89
|
+
if last_at == nil
|
90
|
+
[line]
|
91
|
+
else
|
92
|
+
[line[0,last_at], line[last_at+1, line.length]]
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
data/spec/ww_spec.rb
ADDED
@@ -0,0 +1,272 @@
|
|
1
|
+
# Copyright (c) 2014 Radek Pazdera
|
2
|
+
# Distributed under the MIT License
|
3
|
+
|
4
|
+
# Several tests for the ww function
|
5
|
+
|
6
|
+
require "word_wrap"
|
7
|
+
|
8
|
+
describe WordWrap do
|
9
|
+
describe "#ww" do
|
10
|
+
it "wraps a single line correctly" do
|
11
|
+
text = "0123456789 01234 0123456"
|
12
|
+
expected =<<EOF
|
13
|
+
0123456789
|
14
|
+
01234
|
15
|
+
0123456
|
16
|
+
EOF
|
17
|
+
wrapped = WordWrap.ww(text, 10)
|
18
|
+
wrapped.should eql expected
|
19
|
+
end
|
20
|
+
|
21
|
+
it "works without breaks" do
|
22
|
+
text =<<EOF
|
23
|
+
0123456789012345678 9
|
24
|
+
0123456 0123456
|
25
|
+
EOF
|
26
|
+
|
27
|
+
expected =<<EOF
|
28
|
+
0123456789012345678
|
29
|
+
9
|
30
|
+
0123456
|
31
|
+
0123456
|
32
|
+
EOF
|
33
|
+
wrapped = WordWrap.ww(text, 10)
|
34
|
+
wrapped.should eql expected
|
35
|
+
end
|
36
|
+
|
37
|
+
it "wraps two paragraphs" do
|
38
|
+
text =<<EOF
|
39
|
+
Try-hard 3 wolf moon vinyl, authentic disrupt banh mi cliche fixie skateboard biodiesel chillwave before they sold out pop-up direct trade.
|
40
|
+
|
41
|
+
Mumblecore letterpress iPhone, Brooklyn pork belly distillery cray semiotics.
|
42
|
+
EOF
|
43
|
+
|
44
|
+
expected =<<EOF
|
45
|
+
Try-hard 3 wolf
|
46
|
+
moon vinyl,
|
47
|
+
authentic disrupt
|
48
|
+
banh mi cliche
|
49
|
+
fixie skateboard
|
50
|
+
biodiesel chillwave
|
51
|
+
before they sold
|
52
|
+
out pop-up direct
|
53
|
+
trade.
|
54
|
+
|
55
|
+
Mumblecore
|
56
|
+
letterpress iPhone,
|
57
|
+
Brooklyn pork belly
|
58
|
+
distillery cray
|
59
|
+
semiotics.
|
60
|
+
EOF
|
61
|
+
wrapped = WordWrap.ww(text, 20)
|
62
|
+
wrapped.should eql expected
|
63
|
+
end
|
64
|
+
|
65
|
+
it "wraps a partialy wrapped paragraph" do
|
66
|
+
text =<<EOF
|
67
|
+
Try-hard 3 wolf moon vinyl,
|
68
|
+
authentic
|
69
|
+
disrupt banh mi cliche
|
70
|
+
fixie skateboard biodiesel chillwave
|
71
|
+
before they sold out pop-up direct trade.
|
72
|
+
EOF
|
73
|
+
|
74
|
+
expected =<<EOF
|
75
|
+
Try-hard 3 wolf
|
76
|
+
moon vinyl,
|
77
|
+
authentic
|
78
|
+
disrupt banh mi
|
79
|
+
cliche
|
80
|
+
fixie skateboard
|
81
|
+
biodiesel chillwave
|
82
|
+
before they sold
|
83
|
+
out pop-up direct
|
84
|
+
trade.
|
85
|
+
EOF
|
86
|
+
wrapped = WordWrap.ww(text, 20)
|
87
|
+
wrapped.should eql expected
|
88
|
+
end
|
89
|
+
|
90
|
+
it "wrapping keeps whitespace" do
|
91
|
+
text =<<EOF
|
92
|
+
|
93
|
+
word word word word word
|
94
|
+
|
95
|
+
|
96
|
+
word word word
|
97
|
+
word word reallylong word
|
98
|
+
|
99
|
+
extremelylonganduglyword
|
100
|
+
|
101
|
+
extremelylonganduglyword
|
102
|
+
|
103
|
+
|
104
|
+
EOF
|
105
|
+
|
106
|
+
expected =<<EOF
|
107
|
+
|
108
|
+
word word
|
109
|
+
word word word
|
110
|
+
|
111
|
+
|
112
|
+
word word word
|
113
|
+
word word
|
114
|
+
reallylong word
|
115
|
+
|
116
|
+
extremelylonganduglyword
|
117
|
+
|
118
|
+
|
119
|
+
extremelylonganduglyword
|
120
|
+
|
121
|
+
|
122
|
+
EOF
|
123
|
+
wrapped = WordWrap.ww(text, 20)
|
124
|
+
wrapped.should eql expected
|
125
|
+
end
|
126
|
+
|
127
|
+
it "wrap as a part of String interface" do
|
128
|
+
text =<<EOF
|
129
|
+
Try-hard 3 wolf moon vinyl.
|
130
|
+
|
131
|
+
Mumblecore letterpress iPhone.
|
132
|
+
EOF
|
133
|
+
|
134
|
+
expected =<<EOF
|
135
|
+
Try-hard 3 wolf
|
136
|
+
moon vinyl.
|
137
|
+
|
138
|
+
Mumblecore
|
139
|
+
letterpress iPhone.
|
140
|
+
EOF
|
141
|
+
text.wrap(20).should eql expected
|
142
|
+
end
|
143
|
+
|
144
|
+
it "fits a single line correctly" do
|
145
|
+
text = "0123456789 01234 0123456"
|
146
|
+
expected =<<EOF
|
147
|
+
0123456789
|
148
|
+
01234
|
149
|
+
0123456
|
150
|
+
EOF
|
151
|
+
wrapped = WordWrap.ww(text, 10, true)
|
152
|
+
wrapped.should eql expected
|
153
|
+
end
|
154
|
+
|
155
|
+
it "works without breaks" do
|
156
|
+
text =<<EOF
|
157
|
+
0123456789012345678 9
|
158
|
+
0123456 0123456
|
159
|
+
EOF
|
160
|
+
|
161
|
+
expected =<<EOF
|
162
|
+
0123456789012345678
|
163
|
+
9 0123456
|
164
|
+
0123456
|
165
|
+
EOF
|
166
|
+
wrapped = WordWrap.ww(text, 10, true)
|
167
|
+
wrapped.should eql expected
|
168
|
+
end
|
169
|
+
|
170
|
+
it "fits two paragraphs" do
|
171
|
+
text =<<EOF
|
172
|
+
Try-hard 3 wolf moon vinyl, authentic disrupt banh mi cliche fixie skateboard biodiesel chillwave before they sold out pop-up direct trade.
|
173
|
+
|
174
|
+
Mumblecore letterpress iPhone, Brooklyn pork belly distillery cray semiotics.
|
175
|
+
EOF
|
176
|
+
|
177
|
+
expected =<<EOF
|
178
|
+
Try-hard 3 wolf moon
|
179
|
+
vinyl, authentic
|
180
|
+
disrupt banh mi
|
181
|
+
cliche fixie
|
182
|
+
skateboard biodiesel
|
183
|
+
chillwave before
|
184
|
+
they sold out pop-up
|
185
|
+
direct trade.
|
186
|
+
|
187
|
+
Mumblecore
|
188
|
+
letterpress iPhone,
|
189
|
+
Brooklyn pork belly
|
190
|
+
distillery cray
|
191
|
+
semiotics.
|
192
|
+
EOF
|
193
|
+
wrapped = WordWrap.ww(text, 20, true)
|
194
|
+
wrapped.should eql expected
|
195
|
+
end
|
196
|
+
|
197
|
+
it "fits a partialy wrapped paragraph" do
|
198
|
+
text =<<EOF
|
199
|
+
Try-hard 3 wolf moon vinyl,
|
200
|
+
awesome
|
201
|
+
disrupt banh mi cliche
|
202
|
+
fixie skateboard biodiesel chillwave
|
203
|
+
before they sold out pop-up direct trade.
|
204
|
+
EOF
|
205
|
+
|
206
|
+
expected =<<EOF
|
207
|
+
Try-hard 3 wolf moon
|
208
|
+
vinyl, awesome
|
209
|
+
disrupt banh mi
|
210
|
+
cliche fixie
|
211
|
+
skateboard biodiesel
|
212
|
+
chillwave before
|
213
|
+
they sold out pop-up
|
214
|
+
direct trade.
|
215
|
+
EOF
|
216
|
+
wrapped = WordWrap.ww(text, 20, true)
|
217
|
+
wrapped.should eql expected
|
218
|
+
end
|
219
|
+
|
220
|
+
it "fitting keeps empty lines" do
|
221
|
+
text =<<EOF
|
222
|
+
|
223
|
+
word word word word word
|
224
|
+
|
225
|
+
|
226
|
+
word word word
|
227
|
+
word word reallylong word
|
228
|
+
|
229
|
+
extremelylonganduglyword
|
230
|
+
|
231
|
+
extremelylonganduglyword
|
232
|
+
|
233
|
+
|
234
|
+
EOF
|
235
|
+
|
236
|
+
expected =<<EOF
|
237
|
+
|
238
|
+
word word word word
|
239
|
+
word
|
240
|
+
|
241
|
+
|
242
|
+
word word word word
|
243
|
+
word reallylong word
|
244
|
+
|
245
|
+
extremelylonganduglyword
|
246
|
+
|
247
|
+
extremelylonganduglyword
|
248
|
+
|
249
|
+
|
250
|
+
EOF
|
251
|
+
wrapped = WordWrap.ww(text, 20, true)
|
252
|
+
wrapped.should eql expected
|
253
|
+
end
|
254
|
+
|
255
|
+
it "fit as a part of String interface" do
|
256
|
+
text =<<EOF
|
257
|
+
Try-hard 3 wolf moon vinyl.
|
258
|
+
|
259
|
+
Mumblecore letterpress iPhone.
|
260
|
+
EOF
|
261
|
+
|
262
|
+
expected =<<EOF
|
263
|
+
Try-hard 3 wolf moon
|
264
|
+
vinyl.
|
265
|
+
|
266
|
+
Mumblecore
|
267
|
+
letterpress iPhone.
|
268
|
+
EOF
|
269
|
+
text.fit(20).should eql expected
|
270
|
+
end
|
271
|
+
end
|
272
|
+
end
|
data/word_wrap.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'word_wrap/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "word_wrap"
|
8
|
+
spec.version = WordWrap::VERSION
|
9
|
+
spec.authors = ["Radek Pazdera"]
|
10
|
+
spec.email = ["radek@pazdera.co.uk"]
|
11
|
+
spec.summary = %q{Simple tool for word-wrapping text}
|
12
|
+
spec.description = %q{This gem contains a very simple CLI tool for
|
13
|
+
word-wrapping plain-text files. As simple as
|
14
|
+
it gets. You can also use it in your Ruby
|
15
|
+
scripts - check out the sources for help.}
|
16
|
+
spec.homepage = "http://linuxwell.com/ww"
|
17
|
+
spec.license = "MIT"
|
18
|
+
|
19
|
+
spec.files = `git ls-files`.split($/)
|
20
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
22
|
+
spec.require_paths = ["lib"]
|
23
|
+
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
25
|
+
spec.add_development_dependency "rake"
|
26
|
+
spec.add_development_dependency "rspec"
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: word_wrap
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Radek Pazdera
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-01-23 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.5'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.5'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: |-
|
56
|
+
This gem contains a very simple CLI tool for
|
57
|
+
word-wrapping plain-text files. As simple as
|
58
|
+
it gets. You can also use it in your Ruby
|
59
|
+
scripts - check out the sources for help.
|
60
|
+
email:
|
61
|
+
- radek@pazdera.co.uk
|
62
|
+
executables:
|
63
|
+
- ww
|
64
|
+
extensions: []
|
65
|
+
extra_rdoc_files: []
|
66
|
+
files:
|
67
|
+
- .gitignore
|
68
|
+
- Gemfile
|
69
|
+
- LICENSE.txt
|
70
|
+
- README.md
|
71
|
+
- Rakefile
|
72
|
+
- bin/ww
|
73
|
+
- lib/word_wrap.rb
|
74
|
+
- lib/word_wrap/version.rb
|
75
|
+
- lib/word_wrap/wrapper.rb
|
76
|
+
- spec/ww_spec.rb
|
77
|
+
- word_wrap.gemspec
|
78
|
+
homepage: http://linuxwell.com/ww
|
79
|
+
licenses:
|
80
|
+
- MIT
|
81
|
+
metadata: {}
|
82
|
+
post_install_message:
|
83
|
+
rdoc_options: []
|
84
|
+
require_paths:
|
85
|
+
- lib
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
requirements: []
|
97
|
+
rubyforge_project:
|
98
|
+
rubygems_version: 2.0.3
|
99
|
+
signing_key:
|
100
|
+
specification_version: 4
|
101
|
+
summary: Simple tool for word-wrapping text
|
102
|
+
test_files:
|
103
|
+
- spec/ww_spec.rb
|